java - Spring:具有基于日期时间的队列的任务执行器服务

标签 java spring spring-boot spring-async

我想为任务实现一个执行器服务,它将在一段时间后开始运行, 例如,假设我有这些任务;

task1 = new Task(1,10)   //Task with id 1 and will start after 10 min   
task2 = new Task(2,15)   //Task with id 2 and will start after 15 min   
task3 = new Task(3,5)    //Task with id 3 and will start after 5 min   
task4 = new Task(4,30)   //Task with id 4 and will start after 30 min   

当我将所有这些提交给执行器服务时,我应该得到以下结果;

(5分钟后):
...任务 3 正在运行...
(10分钟后)
...任务 1 正在运行...
(15分钟后)
...任务 2 正在运行...
(30分钟后)
...任务 4 正在运行...

我可以找出如何实现这个。你能帮我解决一下吗?

最佳答案

看看ScheduledThreadPoolExecutor 。下面的示例展示了如何安排线程在 5 分钟内运行。

ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
Thread thread = new Thread();
executor.schedule(thread, 5, TimeUnit.MINUTES);

关于java - Spring:具有基于日期时间的队列的任务执行器服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190524/

相关文章:

java - 当我在 Java 中使用 DOM 获取文本内容时保留子标签

java - 如何使用 Spring Boot 构建两个重新打包的 jar

java - Spring 在手动类实例化期间注入(inject)@Autowired 字段

Spring MVC 测试 : How do I check if a model attribute does not exist?

java - 如果在多个属性文件中定义了一个属性,Spring 如何选择要使用的属性值?

java - Micronaut 未经授权的请求,存在重定向问题

java - <h :messages> in JSF 页面上的错误消息

java - 单击 Activity 中的按钮会同时打开两个 Activity

spring-security - 启用 Spring Security 使 Swagger 输出文本/纯文本而不是 HTML

angular - 访问被 CORS 策略 : Response to preflight request doesn't pass access control check 阻止