Ours是一个在Struts2框架和Hibernate 3.5 ORM上开发的Java Web应用程序。 我们希望异步运行一些任务(计划和非计划)。在谷歌搜索中,我找到了Celery Library,这是一个异步任务队列/作业队列,专注于实时操作并支持调度。
我可以在我们现有的 Java 项目中使用此库吗? 我是否需要为此库添加任何其他依赖项。请向我建议一个解决方案。
我们想要为项目异步执行的任务包括发送电子邮件、从收集的数据生成 csv 文件等,
我为此使用Spring Services。
@Service
public class MyAsynchronousService {
@Scheduled(cron = "0 0 6 * * *")
public void runDailyAtSixAClock() {
...
}
}
当使用已经的Struts2和Hibernate时,Spring作为DI运行良好。只需使用 struts2-spring-plugin。
不知道芹菜是什么。它不是Python库吗?
在 Java 中,有许多方法可以组织计划作业:
- 石英
- @Scheduled
- 春季批次
我们将芹菜与 C#/.Net 应用程序结合使用。 Celery 很好地支持通过 HTTP 接受任务和查询任务状态,这就是我们使用的。有关详细信息,请参阅 Celery HTTP 网关示例应用:
https://github.com/celery/celery/tree/master/examples/celery_http_gateway