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

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

  • 计划任务(例如,每周日晚上发送大量邮件)
  • 基于Web事件触发任务(例如,从Web操作运行一些较长的后台更新)
  • 我想避免的(我不知道是否可行)是让我的platformm散布一些背景任务(其中一些使用cron,其他使用TimerTask,db作业等)变得难以维护。

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

    有关:

  • 计划的Web应用程序任务
  • Web应用程序中的计划任务?

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

    而且你不需要写一行XML来实现它的工作。

    在EE Night Hacks书中有一个很好的例子,也可以在这里找到源代码。

    您可以将Timeout方法添加到处理触发器Web事件的bean中。 这样,他们可以保持在一个地方。 您也可以通过触发事件修改定时器设置。


    我仍然会看Quartz。 我无法对使用EE6的TimerService发表评论,因为我没有使用它,但是我发现Quartz非常有用。

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

    链接地址: http://www.djcxy.com/p/6631.html

    上一篇: Strategies for handling repetitive background tasks in a Java web application?

    下一篇: minutes with Windows Task Scheduler