【发布时间】:2009-09-09 19:13:47
【问题描述】:
我有以下标准库不能很好地解决的问题,我想知道是否有人见过另一个库,所以我不需要一起破解自定义解决方案。我有一个当前使用 scheduleWithFixedDelay() 在线程池上调度的任务,我需要修改代码以处理与异步事件相关的任务的“紧急”执行请求。因此,如果任务计划在执行之间延迟 5 分钟发生,并且在最后一次执行完成后 2 分钟发生事件,我想立即执行任务,然后在完成后等待 5 分钟再次运行之前的紧急执行。现在我能想到的最好的解决方案是让事件处理程序在 scheduleWithFixedDelay() 返回的 ScheduledFuture 对象上调用 cancel() 并立即执行任务,然后在任务中设置一个标志来告诉它重新安排自己具有相同的延迟参数。此功能是否已经可用,而我只是在文档中遗漏了一些内容?
【问题讨论】:
-
概述的解决方案听起来不错。与其让紧急任务重新添加计划任务,不如让事件处理程序能够很好地执行此操作。无论如何,它都需要处理新的 Future。
标签: java