在Cron4J中应用序列

时间:2012-01-23 15:22:47

标签: java scheduled-tasks sequence

我正在使用cron4j来安排每30分钟运行一次的任务。但是,如果仍在执行同一任务的先前实例,我不想运行任务执行的第二个实例。 我知道在Executor中有像isLive()和join()这样的方法,但不确定使用它们来实现目标的适当方法。

1 个答案:

答案 0 :(得分:0)

我假设你想实现顺序处理。如果是这种情况,我的建议是使用队列作为2个cron4j任务之间的“管道”,生成过程参数的rask以及处理参数的任务。

cron4j(task1,30分钟间隔)准备参数,放入-----> queue< ----- cron4j(task2,也许10分钟间隔)从中读取参数,并相应地处理。

在cron4j的任务2中,在处理完队列中的参数后,它可以在完成之前再次检查队列的内容,并在队列中有新内容时继续处理。

使用这种方法,事物按顺序处理,并且2个任务松散耦合,因为它们与队列对象接口。

您可以将java.util.Queue用于队列。