一尘不染

在Java Web应用程序中运行常规后台事件

java

在第15个播客中,杰夫提到他在Twitter上发表了关于如何在后台运行常规事件的推特,好像它是正常功能一样-
不幸的是,我似乎无法通过推特找到它。现在,我需要做类似的事情,并将这个问题提交给大众。

我当前的计划是,当第一个用户(可能是我)进入站点时,它将启动一个后台线程,该线程等待直到分配的时间(每小时一小时),然后启动阻止其他人的事件(我是一名Windows程序员,因此我认为就事件和WaitOnMultipleObjects而言,直到完成为止。

Jeff是如何在Asp.Net中做到这一点的,并且他的方法适用于Java Web应用程序世界吗?


阅读 199

收藏
2020-12-03

共1个答案

一尘不染

我认为开发用于运行后台任务的自定义解决方案并不总是值得的,因此我建议在Java中使用Quartz
Scheduler

在您的情况下(需要在Web应用程序中运行后台任务),可以使用分发中包含的ServletContextListener在Web容器启动时初始化引擎

之后,您可以启动(触发)后台任务(作业),例如可以使用日历或类似cron的表达式。在您的情况下,您很可能应该使用SimpleTrigger来解决该问题,它使您能够以固定的固定间隔运行作业。

作业本身也可以在Quartz中轻松描述,但是您尚未提供有关需要运行的任何详细信息,因此我无法在该领域提供建议。

2020-12-03