在Java Web应用程序中处理重复后台任务的策略?

时间:2011-09-20 07:54:42

标签: java web-applications scheduled-tasks

我正在使用Java EE 6 Technologies构建个人Web应用程序(容器是应用程序服务器,Jboss AS 7)。我从头开始创作 重复的后台任务,我确定了两种可能的情况:

  • 计划任务(例如,每个星期天晚上发送大量邮件)
  • 基于Web事件触发任务(例如,从Web操作运行一些长时间的后台更新)

我想避免的(我不知道是否可行)是在我的平台上散布一些后台任务(其中一些使用cron,其他使用TimerTask,db {{ 3}}等等。)变得难以维护。

考虑到之前的两个要求,在Java Web应用程序中处理重复后台任务有哪些不同的方法?

相关:

2 个答案:

答案 0 :(得分:2)

使用EE6,您可以使用带有@Timeout注释的TimerService几乎所有情况摆脱Quartz。

而且您不需要编写一行XML来使其正常工作。

EE Night Hacks book中有一个很好的示例,也可以作为来源here

您可以向处理触发器Web事件的bean添加Timeout方法。这样,它们可以保存在一个地方。您还可以通过触发事件修改计时器设置。

答案 1 :(得分:1)

我还会看Quartz。我不能用EE6作为替代品来评论TimerService,因为我没有使用它,但我发现Quartz非常有用。

当我使用它(几年前)时,它的配置文件非常类似于你为cron找到的内容。您可以使用它来调用执行预定作业所需的任何方法,然后只需提供一些其他机制来按需调用该方法。