安排任务的最佳实践
Best practice for scheduling tasks
我正在开发一个网站,用户可以在其中 运行 安排他们自己的任务。每个用户都会有很多任务。
任务可以分为两种类型:
1. 未来随时运行的任务。 (例如:约翰想 post 他明天 5:25 下午的消息。
2. 未来 运行 的任务,但时间为 15 分钟的倍数。 (示例:John 想 post 他明天 5:15 下午的消息。他无法将此任务安排在 5:25,因为它不是多个 15 分钟。他只能将其安排在时间如 5:15、5:30、5:45、6:00 等等)。
处理这些任务的最佳做法是什么?
我有这个想法:
使用 mysql 数据库来存储所有具有时间索引的任务。 运行 一个调度程序,它将拉取一个必须 运行 的任务,并在此任务之后拉下一个,依此类推。
最好的问候,亚历山大
你可以使用这个框架https://quartz-scheduler.org/
什么是石英?
作业调度库
Quartz 是一个功能丰富的开源作业调度库,几乎可以集成到任何 Java 应用程序中 - 从最小的独立应用程序到最大的电子商务系统。 Quartz 可用于创建简单或复杂的调度来执行数十个、数百个甚至数万个作业;其任务被定义为标准 Java 组件的作业,这些组件几乎可以执行您编写的任何程序。 Quartz Scheduler 包含许多企业级class 特性,例如支持 JTA 事务和集群。
我正在开发一个网站,用户可以在其中 运行 安排他们自己的任务。每个用户都会有很多任务。
任务可以分为两种类型:
1. 未来随时运行的任务。 (例如:约翰想 post 他明天 5:25 下午的消息。
2. 未来 运行 的任务,但时间为 15 分钟的倍数。 (示例:John 想 post 他明天 5:15 下午的消息。他无法将此任务安排在 5:25,因为它不是多个 15 分钟。他只能将其安排在时间如 5:15、5:30、5:45、6:00 等等)。
处理这些任务的最佳做法是什么?
我有这个想法:
使用 mysql 数据库来存储所有具有时间索引的任务。 运行 一个调度程序,它将拉取一个必须 运行 的任务,并在此任务之后拉下一个,依此类推。
最好的问候,亚历山大
你可以使用这个框架https://quartz-scheduler.org/
什么是石英? 作业调度库
Quartz 是一个功能丰富的开源作业调度库,几乎可以集成到任何 Java 应用程序中 - 从最小的独立应用程序到最大的电子商务系统。 Quartz 可用于创建简单或复杂的调度来执行数十个、数百个甚至数万个作业;其任务被定义为标准 Java 组件的作业,这些组件几乎可以执行您编写的任何程序。 Quartz Scheduler 包含许多企业级class 特性,例如支持 JTA 事务和集群。