2013-02-06 52 views
3

我只是触摸芹菜和爪哇2天。 :(我可以通过rabbitmq使用java send任务来芹菜吗?

现在,我有一个任务Java客户端通过发送的RabbitMQ任务。芹菜将处理任务的工人。

我知道这很容易Python-> rabbitmq->芹菜,但我不能通过基于Java> rabbitmq->芹菜做到这一点?

的想法草案是由序列化JSON,然后通过RabbitMQ的发送Java函数,然后用芹菜处理。

最好是具有示例代码和可能直接运行

谢谢

+1

@Stephen C我只是成功地创建了一个Java发送给Rabbitmq的任务,芹菜可以处理任务。但是代码非常难看,需要大量的代码才能创建序列化字符串,而且根本不灵活。有没有一些jar包可以封装这些东西?可以使它像Python一样工作,只需通过调用函数创建任务? – James

回答

5

您当然可以通过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

最好是具有示例代码和可直接运行

你是正确的。

上面链接的页面包含代码片段,而RabbitMQ Java库有一些(小)示例。 (至少,这就是页面说的。)

+0

嗨斯蒂芬,谢谢,我有类似的想法,如你所说(更好地更新我的问题更清楚)。是否有更清晰的演示项目已经集成了您提到的步骤? – James

+1

我还没有用Google搜索过,但你可以。 –

+0

我正在寻找类似的东西,但我无法找到有关交换/队列挂钩的详细信息。如何检索结果等 –

1

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