【问题标题】:Can I use java send task to celery through rabbitmq?我可以通过rabbitmq使用java发送任务到芹菜吗?
【发布时间】:2013-02-06 08:49:27
【问题描述】:

我刚接触 celery 和 java 2 天。 :(

现在,我有一个java客户端通过rabbitmq发送任务的任务。 Celery 将是处理任务的工人。

我知道 Python->rabbitmq->celery 很容易。但是我可以通过 java->rabbitmq->celery 做到这一点吗?

草稿思路是把java函数用json序列化,然后用rabbitmq发送,再用celery处理。

最好有示例代码,可以直接运行

谢谢

【问题讨论】:

  • @Stephen C 我刚刚成功创建了一个用Java发送到Rabbitmq的任务,芹菜可以处理这个任务。但是代码非常难看,创建序列化字符串的代码很多,一点都不灵活。是否有一些jar包可以封装这些东西?可以让它像python一样工作,只需通过调用函数创建一个任务?

标签: java json rabbitmq celery django-celery


【解决方案1】:

您当然可以从 Java 通过 RabbitMQ 发送消息。有一个用于与 RabbitMQ 交互的 Java 客户端库 - http://www.rabbitmq.com/api-guide.html

此页面描述了 Celery 消息格式 - http://docs.celeryproject.org/en/latest/internals/protocol.html。一种风格使用 JSON,并且有很多现有的 Java 库用于 JSON 读写;见http://json.org

最好有示例代码,可以直接运行

你是对的。

上面链接的页面包含代码 sn-ps,RabbitMQ Java 库有一些(小)示例。 (至少,页面上是这么说的。)

【讨论】:

  • 嗨斯蒂芬,谢谢,我和你说的有相似的想法(最好更新我的问题更清楚)。是否已经有更清晰的演示项目已经将您提到的步骤整合在一起了?
  • 我没有在 Google 上搜索过……但你可以。
  • 我正在寻找类似的东西,但我找不到要连接到哪些交换/队列的详细信息。如何检索结果等
【解决方案2】:

最简单的形式是编写一个简单的 python 脚本,简单地将任务添加到 celery,然后从 java 调用这个 python 脚本(Runtime.exec() 或类似方法)。

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 2017-06-02
    • 2023-03-03
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2018-04-23
    相关资源
    最近更新 更多