0

大规模编程中的另一个问题:

我有一个带有时间戳和目标文件名的作业队列。(对于每个时间戳,最多可能有 500 个目标文件需要处理)。所有 500 个目标文件的处理算法都是相同的。我想要做:

  • 用Java编写程序
  • 每当到达时间戳时,立即触发所有 500 个作业
  • 在计算效率、cpu 使用率和可扩展性方面高效地完成它

我知道这样做的愚蠢方法,使用while循环,检查当前时间是否是作业队列中的时间戳......但是还有其他选择吗?我也在网上google了一下,也有一些人说在Unix中使用cron命令。(是的,我的目标设置是在 Unix 中。)

我是这个大规模计算领域的新手,欢迎任何建议或建议。

4

2 回答 2

2

如果您希望作业队列持久化,请使用Quartz等批处理调度程序。

一个更轻量级的替代方案是来自 java.util.concurrent 包的 ScheduledThreadPoolExecutor,您可以使用 Executors 工厂类创建它。这允许您注册 Runnable 任务以在固定时间执行。

于 2009-06-22T20:15:28.000 回答
0

听起来您想要的是优先级队列。您基本上需要按队列中的时间戳对项目进行排序。

于 2009-06-22T20:18:31.413 回答