安排任务的最佳实践

时间:2016-03-12 22:56:13

标签: mysql scheduled-tasks quartz-scheduler scheduling scheduler

我正在开发一个网站,用户可以在其中运行预定的自己的任务。每个用户都会有很多任务 任务可以有两种类型:
1.任务将来随时运行。 (例如:John希望明天下午5:25发布他的消息) 2.任务将在未来运行,但时间多达15分钟。 (例如:约翰希望明天下午5:15发布他的消息。他不能在5:25安排这个任务,因为它不会超过15分钟。他只能按时安排它如5: 15,5:5,5:45,6:00等。)

处理这些任务的最佳做法是什么?

我有这个想法: 使用mysql数据库按时存储索引的所有任务。运行一个调度程序,它将完成一个必须很快运行的任务,并在此任务拉下一个之后依次执行。

最诚挚的问候,Alexandr

1 个答案:

答案 0 :(得分:1)

您可以使用此框架https://quartz-scheduler.org/

什么是Quartz? 作业调度库

Quartz是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。 Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业;将任务定义为标准Java组件的作业,这些组件可以执行几乎任何可以编程的程序。 Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。