web-dev-qa-db-fra.com

Quel est l'équivalent du projet Celery Python pour Java?

J'essaie de trouver un équivalent du projet Celery pour l'environnement Java. J'ai examiné Spring Batch, mais existe-t-il de meilleures alternatives pour les files d'attente de tâches distribuées?.

Merci.

31

Ce que fait Celery ressemble beaucoup à EIP et SEDA avec une planification de tâches pratique ... ont une pile de qualité entreprise complète).

En Java, il existe essentiellement la méthode Spring, la méthode Java EE et la méthode Hadoop:

  • Spring: Intégration Spring + Spring Batch + RabbitMQ
  • Java EE: Programmation Mule + Quartz ou EJB + HornetMQ
  • Hadoop:Capacité + ZooKeeper 

Ce sont à peu près par ordre de facilité d'installation.

23
Adam Gent

Jesque ( https://github.com/gresrun/jesque ) est une bibliothèque de files de tâches distribuées Java. C'est un portage Java de la bibliothèque Resque ( https://github.com/defunkt/resque ), qui est décrit comme ceci sur sa page GitHub:

Resque (prononcé comme "rescue") est une bibliothèque reposant sur Redis qui permet de créer des travaux en arrière-plan, de placer ces travaux sur plusieurs files d'attente et de les traiter ultérieurement. "

9
xnickmx

Le quartz a fonctionné pour moi dans le passé. Il est maintenant intégré à Terracotta, il devrait donc être facile à distribuer. http://quartz-scheduler.org/

5
ConnorWGarvey

Le céleri est principalement basé sur Erlang/RabbitMQ. RabbitMQ a une bibliothèque client Java qui pourrait être utile. Aussi, il y a octobre qui a un backend RabbitMQ.

3
enderskill

Planification et exécution des tâches Java distribuées https://redisson.org/

0
Daniel Dai

Je n'ai rien trouvé d'aussi simple à utiliser que Celery for Java. La plupart des solutions recommandaient d'utiliser une file de messages. Mais le céleri se situe à un niveau d'abstraction plus élevé que la file d'attente. Au lieu de messages et de consommateurs, vous pouvez penser en termes de tâches et de travailleurs, de résultats, de tentatives, etc.

J'avais également besoin d'implémenter un pont pour une entreprise utilisant à la fois Java et Python. J'ai donc démarré ce projet:

celery-Java - Client et travailleur Celery en Java, compatibles avec leurs homologues Python.

Attention, c'est très immature à partir de maintenant.

0
Krab

La chose la plus proche que j'ai trouvée est Octobre: ​​ https://github.com/cscotta/Octobot Pas tellement de documentation cependant ... il y avait un site Web pour cela à octobre.taco.cat , mais je n'ai pas vu cette charge ces derniers temps. Personnellement, je n'ai pas utilisé d'Octobot, mais je l'ai souvent vu recommandé comme céleri pour Java.

0
nairbv