java中多个任务的任务调度?

时间:2010-12-21 10:18:16

标签: java jsp servlets

我已经使用计时器构建了一个java时钟,它适用于单个任务在下一个给定/设置的时间发出警报,但我在使用此计时器调度多个任务(差异时间的警报)时遇到问题,如两次可以相互冲突(两个不同作品的同一时间)如何在这些条件之间同步,请帮助....

谢谢和问候

Alok Sharma

2 个答案:

答案 0 :(得分:2)

我不确定您要做什么,但如果您使用quartz调度程序,则可以解决任何调度/同步任务:

http://www.quartz-scheduler.org/

答案 1 :(得分:0)

我同意Lukas的说法,你可以使用石英。它是最好,可扩展且强大的解决方案。

但是如果你需要相对较小的东西,你可以继续使用基于计时器的解决方案。由于Timer类的javadoc表明您的任务应该花费很少的时间。在这种情况下,你可以忘记时间冲突。如果您的任务需要超过0.1秒,请在单独的线程中运行它们。我的意思是使用Timer作为触发器,只是让任务在单独的线程中启动。

线程可以按如下方式完成:

  1. 自己创建线程。如果你在J2EE容器中,这是不好的做法。如果你在Tomcat,那就不那么糟了。
  2. 使用线程池。关于容器的评论也在这里。
  3. 使用JMS:Timer只是将消息推送到JMS。 MDB或其等价物接收消息并执行任务。
  4. 在J2EE容器中使用Timer itsef也是一种不好的做法。如果你在那里并希望“干净”使用JCA来运行Timer。