我试图找到一个相当于Java环境的Celery项目,我看过Spring Batch,但是对于分布式任务队列有更好的选择。
感谢。
答案 0 :(得分:23)
Celery正在做的事情非常类似于EIP和SEDA以及方便的任务调度...(你要做的只是添加一些数据库,以及异步HTTP网络,你有获得了完整的企业质量栈。)
基本上在Java中有Spring方式,Java EE方式和Hadoop方式:
这些大致是为了便于设置。
答案 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)
Apache ActiveMQ http://activemq.apache.org/
Apache Kafka http://kafka.apache.org/