8

我已经问了一个关于如何在 Java 中创建时间触发事件的单独问题。我被介绍给石英。同时,我也在网上google了一下,大家都说cron在Unix中是个不错的解决方案。

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

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

4

2 回答 2

20
  1. Usingcron似乎在您的应用程序中添加了另一个入口点,同时Quartz会集成到其中。因此,如果您想向/从调用的进程传递一些信息,您将不得不处理一些进程间通信cron。在Quartz你简单地(呵呵)运行多个线程。
  2. cron是平台相关的,Quartz不是。
  3. Quartz可以让您可靠地确保任务在给定时间或服务器关闭一段时间后的某个时间运行。Purecron不会为您执行此操作(除非您手动处理)。
  4. Quartz有一种更灵活的表达事件的语言(何时应该触发任务)。
  5. 考虑内存占用。如果您的单个任务不共享或共享很少,那么最好将它们从操作系统作为单独的进程运行。如果它们共享大量信息,最好将它们作为一个进程中的线程。
  6. 不太确定如何处理该cron方法中的聚类。Quartz可以按照向外扩展模式与Terracotta一起使用(我还没有尝试过,但我相信它是可行的)。
于 2009-06-22T21:29:54.340 回答
3

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

于 2009-06-25T16:32:10.457 回答