Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调度程序的Java队列_Java - Fatal编程技术网

调度程序的Java队列

调度程序的Java队列,java,Java,我想知道我将如何实现一个队列的时间表 例如,我有一个ScheduledExecutorService,它每30秒执行一次任务,直到成功。有时这项任务会在30秒内成功,有时需要几分钟。ScheduledExecutorService将定期获得一个作业。我希望ScheduledExecutorService只有在当前作业成功时才能转移到下一个作业。我将如何实现这一点?根据官方文档,您可以使用scheduleAtFixedDelay在执行之间施加延迟: 创建并执行先启用的定期操作 在给定的初始延迟之后

我想知道我将如何实现一个队列的时间表


例如,我有一个ScheduledExecutorService,它每30秒执行一次任务,直到成功。有时这项任务会在30秒内成功,有时需要几分钟。ScheduledExecutorService将定期获得一个作业。我希望ScheduledExecutorService只有在当前作业成功时才能转移到下一个作业。我将如何实现这一点?

根据官方文档,您可以使用
scheduleAtFixedDelay
在执行之间施加延迟:

创建并执行先启用的定期操作 在给定的初始延迟之后,以及随后的给定延迟 在一次执行的终止和执行的开始之间 下一个

不完全是你如何措辞你的问题,但它看起来像是你想做的


请参阅

中的详细信息,是否希望单线程执行?@PM77-1是的,单线程执行。是否只希望按顺序执行
队列
?该方法将以给定的延迟执行给定的任务。但是OP希望有一个包含许多不同作业的作业队列,然后按顺序处理。您可以有一个作业队列,在队列不为空时以固定延迟运行下一个作业队列。我的疑问是,当队列不为空时,调度程序是否应该保持忙碌,或者在5分钟的作业之间暂停30秒是否可以接受。