时间触发工作Cron或Quartz?

时间:2009-06-22 21:03:52

标签: java cron quartz-scheduler

我已经问了separate question on how to create time triggered event in Java。我被介绍给Quartz。 与此同时,我也在网上谷歌,人们说在Unix中cron是一个很好的解决方案。

哪一个更好?什么是缺点和优点?

系统的一些规范: * Unix OS *用Java编写的程序 *我有一个包含1000多个条目的任务队列,对于每个时间戳,最多可触发500个任务。

2 个答案:

答案 0 :(得分:20)

  1. 使用cron似乎会在您的应用中添加另一个入口点,而Quartz会集成到其中。因此,如果您想要从cron调用的进程传递一些信息,那么您将被迫处理一些进程间通信。在Quartz中,您只需(呵呵)运行多个线程。
  2. cron取决于平台,Quartz不是。
  3. Quartz可以让您可靠地确保在服务器关闭一段时间后的给定时间或某个时间运行任务。纯cron不会为你做(除非你手动处理)。
  4. Quartz具有更灵活的表达出现的语言(当应该触发任务时)。
  5. 考虑内存占用。如果您的单个任务没有共享任何内容,那么最好从操作系统中将它们作为一个单独的进程运行。如果他们共享大量信息,最好将它们作为一个进程中的线程。
  6. 不太确定如何处理cron方法中的聚类。 Quartz可能会在扩展模式后与Terracotta一起使用(我没有尝试过,但我相信它是可行的)。

答案 1 :(得分:3)

cron的优点是任何系统管理员都知道如何使用它,并且它在很多地方都有记录。如果cron能够完成这项工作,那么它确实是首选的解决方案。