java - 在 Cron4J 中应用序列

原文 标签 java scheduled-tasks sequence

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

最佳答案

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

准备参数的 cron4j(任务 1,30 分钟间隔),放入 -----> 队列 <----- cron4j(任务 2,可能 10 分钟间隔)从中读取参数,并进行相应的处理。

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

使用这种方法,事情是按顺序处理的,这 2 个任务是松散耦合的,因为它们与队列对象交互。

您可以使用 java.util.Queue 作为队列。

关于java - 在 Cron4J 中应用序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973974/

相关文章:

java - 如何实现Java/Scala内存统计数据库?

Java Swing 代码中的 java.lang.NullPointerException

java - 筛选getAll查询结果

python - 车间调度的弧线约束

java - 如何每30分钟在Java Web应用程序中调用一个类

java - lg(N)时间中的AVL树联接操作算法或伪代码

sql - 每 30 秒运行一次 oracle 查询 (SQL),一旦计数等于 8,它应该继续进行并完成工作

sql - 更改Postgres序列的最小值

python - 重用序列作为Python列表的一部分

sql-server - SQL Server - 实现序列