2012-03-06 7 views
26

Estoy tratando de encontrar un equivalente del proyecto Celery para el entorno Java, he examinado Spring Batch, pero ¿hay mejores alternativas para las colas de tareas distribuidas?¿Cuál es el equivalente del proyecto de apio de Python para Java?

Gracias.

+0

En realidad, un duplicado de esto: https://stackoverflow.com/questions/9577012/whats-the-equivalent-of-pythons-celery-project-for-java (pero este estafado tiene mejores respuestas por ahora ...) – fnl

Respuesta

5

El cuarzo me ha funcionado en el pasado. Está integrado con Terracotta ahora, por lo que debería ser fácil de distribuir. http://quartz-scheduler.org/

+2

¿Es posible realizar una ejecución de trabajos a pedido con el programador de Quartz, en lugar de ejecutar un trabajo en un horario específico? –

+0

@ZakiullahKhanMohamed Estoy muy tarde pero sí, esto es posible. Puede programar un trabajo para que se ejecute inmediatamente. – GuiSim

+1

Solo un aviso: la versión 'gratuita' de código abierto no admite la distribución. Terracotta afirma que la versión empresarial sí lo hace. –

3

El apio se basa principalmente en Erlang/RabbitMQ. RabbitMQ tiene un Java client library que puede ser útil. Además, existe octobot que tiene un backend RabbitMQ.

+0

Si no estoy equivocado, Aplery está escrito en gran parte en Python y no en Erlang, estoy de acuerdo con la nota de que RabbitMQ está basado en erlang. Mirando octobot, gracias. –

+1

Creo que quiere decir que RabbitMQ está escrito en Erlang, por lo que debe instalarlo para usarlo. – fabspro

8

Jesque (https://github.com/gresrun/jesque) es una biblioteca de colas de tareas distribuidas de Java. Es un puerto de Java de la biblioteca Resque (https://github.com/defunkt/resque), que se describe como esto en su página de GitHub:

Resque (pronunciado como "rescate") es una biblioteca Redis con respaldo para la creación de trabajos en segundo plano, la colocación de los . trabajos en múltiples colas y procesarlas más tarde"

0

lo más parecido que he encontrado es Octobot: https://github.com/cscotta/Octobot No tanto la documentación, aunque ... no solía ser un sitio web para que en octobot.taco. gato, pero no he visto esa carga últimamente. No he usado Octobot personalmente, pero a menudo lo he visto recomendado como Apio para Java.

20

Lo que hace Apio es muy similar a EIP, y SEDA con programación de tareas conveniente ... (todo lo que queda por hacer es agregar algo de DB, y una red HTTP asincrónica y usted tiene una pila completa de calidad empresarial).

Básicamente en Java no es la forma en la primavera, la forma en Java EE, y la forma en Hadoop:

  • primavera: primavera Integración + Spring Batch + RabbitMQ
  • Java EE: mula + cuarzo o EJB programación + HornetMQ
  • Hadoop:Capacity + ZooKeeper

Esos son más o menos fáciles de configurar.

0

no he podido encontrar nada tan fácil de usar como apio para Java. La mayoría de las soluciones recomendadas para utilizar una cola de mensajes. Pero el apio tiene un nivel de abstracción más alto que la cola. En lugar de los mensajes y los consumidores, se puede pensar en términos de tareas y trabajadores, resultados, etc. reintentos

También necesitaba para implementar algunas puente para una empresa que utiliza Java y Python, así que comenzó este proyecto:

celery-java - Cliente y trabajador de apio en Java, compatible con sus contrapartes de Python.

Tenga cuidado, es muy inmaduro a partir de ahora.

Cuestiones relacionadas