什么相当于Python的Celery Java项目?

时间:2012-03-06 02:12:48

标签: java python celery batch-processing spring-batch

我试图找到一个相当于Java环境的Celery项目,我看过Spring Batch,但是对于分布式任务队列有更好的选择。

感谢。

8 个答案:

答案 0 :(得分:23)

Celery正在做的事情非常类似于EIPSEDA以及方便的任务调度...(你要做的只是添加一些数据库,以及异步HTTP网络,你有获得了完整的企业质量栈。)

基本上在Java中有Spring方式,Java EE方式和Hadoop方式:

  • Spring: Spring Integration + Spring Batch + RabbitMQ
  • Java EE: Mule + Quartz或EJB Scheduling + HornetMQ
  • Hadoop: Capacity + ZooKeeper

这些大致是为了便于设置。

答案 1 :(得分:9)

Jesque(https://github.com/gresrun/jesque)是一个Java分布式任务队列库。它是Resque库(https://github.com/defunkt/resque)的Java端口,在GitHub页面上如下所示:

  

Resque(发音为“rescue”)是一个Redis支持的库,用于创建后台作业,将这些作业放在多个队列中,并在以后处理它们。“

答案 2 :(得分:5)

Quartz过去曾为我工作过。它现在与Terracotta集成,所以应该很容易分发。 http://quartz-scheduler.org/

答案 3 :(得分:3)

Celery主要基于Erlang / RabbitMQ。 RabbitMQ有Java client library可能有用。另外,octobot有一个RabbitMQ后端。

答案 4 :(得分:0)

我发现最接近的是Octobot:https://github.com/cscotta/Octobot 虽然没有那么多的文档......在octobot.taco.cat曾经有一个网站,但我最近没有看到这个负载。我没有亲自使用Octobot,但我经常看到它被推荐为Celery for Java。

答案 5 :(得分:0)

我还没有找到像Celery for Java一样易于使用的东西。大多数解决方案建议使用消息队列。但Celery比队列高一级抽象。您可以考虑任务和工作人员,结果,重试等,而不是消息和消费者。

我还需要为使​​用Java和Python的公司实现一些桥梁,所以我开始了这个项目:

celery-java - Java中的Celery客户端和工作者,与Python对应的兼容。

要注意,截至目前,它还非常不成熟。

答案 6 :(得分:0)

分布式Java任务的调度和执行https://redisson.org/

答案 7 :(得分:-4)