讨论数量:
本来用的延时任务,但没找到修改延时时间的文档
如果你想用延时任务,那其实不用 “修改” 去修改延时队列任务的时间,你可以换一种思路。
在加一个任务表,把关联的 ID 放进去,加上预期执行时间和执行状态(未执行、执行中、已执行、已取消)。
当修改时间时,直接再投递一条新的任务到队列进去(并且修改任务表中的预期执行时间)。
这时候延时队列里面就有 2 条任务了,当运行到其中一个任务时检查任务是否未执行,再检查时间,如果时间在允许范围内,先标记为执行中,再执行这个任务,最后标记为已完成。
一般情况下,不会有啥问题,但也不排除特殊情况。
推荐文章: