2012-03-06 13 views
26

Sto cercando di trovare un equivalente del progetto Celery per l'ambiente Java, ho esaminato Spring Batch, ma ci sono alternative migliori per le code di attività distribuite.Qual è l'equivalente di Python's Celery project per Java?

Grazie.

+0

In realtà un duplicato di questo: https://stackoverflow.com/questions/9577012/whats-the-equivalent-of-pythons-celery-project-for-java (ma questo dupe ha risposte migliori ormai ...) – fnl

risposta

5

Quartz ha funzionato per me in passato. Ora è integrato con Terracotta, quindi dovrebbe essere facile da distribuire. http://quartz-scheduler.org/

+2

È possibile eseguire l'esecuzione del lavoro su richiesta con il programma di pianificazione Quartz, anziché eseguire un lavoro su una pianificazione specifica? –

+0

@ZakiullahKhanMohamed Sono molto ritardato ma sì, questo è possibile. È possibile pianificare un lavoro da eseguire immediatamente. – GuiSim

+1

Solo un avviso: la versione "gratuita" open source non ha alcun supporto per la distribuzione. Terracotta afferma che la versione enterprise lo fa. –

3

Il sedano si basa principalmente su Erlang/RabbitMQ. RabbitMQ ha uno Java client library che potrebbe essere utile. Inoltre, c'è octobot che ha un backend RabbitMQ.

+0

Se non sbaglio, Celery è ampiamente scritto in Python e non in Erlang, ma sono d'accordo sul fatto che RabbitMQ sia basato su erlang. Guardando octobot, grazie. –

+1

Penso che voglia dire che RabbitMQ è scritto in Erlang, quindi è necessario installarlo per usarlo. – fabspro

8

Jesque (https://github.com/gresrun/jesque) è una libreria di code di attività distribuite Java. Si tratta di una porta Java della biblioteca Resque (https://github.com/defunkt/resque), che è descritto in questo modo sulla sua pagina di GitHub:

Resque (pronunciato come "salvataggio") è una libreria Redis-backed per la creazione di posti di lavoro di fondo, mettendo quelli . lavori su più code, e l'elaborazione in un secondo momento"

0

La cosa più vicina che ho trovato è Octobot: https://github.com/cscotta/Octobot Non tanto di documentazione anche se ... ha usato per essere un sito web per essa al octobot.taco. cat, ma ultimamente non l'ho visto. Non ho usato personalmente Octobot, ma l'ho visto spesso raccomandato come un Celery per Java.

20

Ciò che Celery sta facendo è molto simile a EIP e SEDA con una comoda pianificazione delle attività ... (tutto ciò che vi resta da fare è aggiungere un po 'di DB e una rete asincrona HTTP e avete uno stack completo di qualità aziendale).

sostanza in Java c'è il modo di Primavera, il modo in cui Java EE, e il modo in Hadoop:

  • Primavera: primavera Integrazione + primavera Batch + RabbitMQ
  • Java EE: Mule + quarzo o EJB Scheduling + HornetMQ
  • Hadoop:Capacity + ZooKeeper

Questi sono approssimativamente in ordine di facilità di installazione.

0

non sono stato in grado di trovare qualcosa di facile da usare come sedano per Java. La maggior parte delle soluzioni consiglia di utilizzare una coda di messaggi. Ma Celery ha un livello di astrazione più alto della coda. Invece di messaggi e dei consumatori, si può pensare in termini di compiti e lavoratori, risultati, ecc tentativi

Ho anche bisogno di attuare alcune ponte per una società che utilizza sia Java e Python così ho iniziato questo progetto:

celery-java - Client e worker di Celery in Java, compatibili con le loro controparti Python.

Attenzione, è molto immaturo a partire da ora.

Problemi correlati