2013-02-06 107 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腳本。 。