2012-03-06 67 views
26

我正在嘗試爲Java環境找到相當於Celery項目,我已經看過Spring Batch,但是有沒有更好的分佈式任務隊列替代方案。Java的Python Celery項目的等價物是什麼?

謝謝。

+0

其實這是一個重複︰https://stackoverflow.com/questions/9577012/whats-the-equivalent-of-pythons-celery-project-for-java(但這個愚蠢有更好的答案,現在... ) – fnl 2016-11-11 08:30:15

回答

5

石英已經爲我工作過去。它現在與Terracotta集成在一起,所以它應該很容易分發。 http://quartz-scheduler.org/

+2

是否可以使用Quartz調度程序按需執行作業,而不是按照特定的時間表執行作業? – 2012-03-06 02:28:02

+0

@ZakiullahKhanMohamed我很晚很晚,但是,這是可能的。您可以安排工作立即運行。 – GuiSim 2016-07-29 21:01:14

+1

只是個頭:開源的'免費'版本沒有任何分發支持。兵馬俑聲稱企業版本。 – 2016-09-27 20:07:36

3

芹菜主要基於Erlang/RabbitMQ。 RabbitMQ有一個Java client library這可能是有用的。另外,還有octobot,它有一個RabbitMQ後端。

+0

如果我沒有錯Celery主要是用Python編寫的,而不是Erlang,我會同意RabbitMQ是基於erlang的。看着octobot,謝謝。 – 2012-03-06 14:44:03

+1

我想他是說RabbitMQ是用Erlang編寫的,所以你需要安裝它才能使用它。 – fabspro 2014-06-01 09:41:18

8

Jesque(https://github.com/gresrun/jesque)是一個Java分佈式任務隊列庫。它是Resque庫(https://github.com/defunkt/resque),它是這樣描述它的GitHub頁面上的一個Java接口:

Resque(發音類似「救市」)是用於創建後臺作業,將那些Redis的支持庫。在多個隊列中的作業,並處理它們後來的」

0

我發現的最接近的是Octobot:https://github.com/cscotta/Octobot 與其說文件雖然...曾經有在octobot.taco爲它的網站。貓,但我最近沒有看到這種負載,我沒有親自使用過Octobot,但我經常看到它推薦作爲Java的Celery。

20

Celery正在做什麼非常類似於EIPSEDA與方便的任務調度......(你只需要添加一些數據庫和異步HTTP網絡,你有一個完整的企業質量堆棧)。

在Java中

基本上沒有春天的方式,Java EE的方式,和Hadoop的方式:

  • 春: Spring集成+ Spring Batch的+ RabbitMQ的
  • 的Java EE:騾子+石英或EJB調度+ HornetMQ
  • 的Hadoop:Capacity + ZooKeeper的

這些大致是爲了便於設置。

0

我一直沒能找到任何東西一樣容易芹菜的Java使用。大多數解決方案建議使用消息隊列。但是,芹菜坐在比隊列更高的抽象層次上。相反,消息和消費者,你能想到的任務和工人,結果,重試等方面

我還需要實現同時使用Java和Python一個公司的一些橋樑,使我開始這個項目:

celery-java - Celery客戶端和Java工作者,與他們的Python對應兼容。

請注意,目前這是非常不成熟的。

相關問題