mysql - 安排任务的最佳实践

标签 mysql scheduled-tasks quartz-scheduler scheduling scheduler

我正在开发一个网站,用户可以在其中运行自己计划的任务。每个用户都会有很多任务。
任务可以有两种类型:
1. 将来随时运行的任务。 (例如:约翰想在明天下午 5:25 发布他的消息)。
2. future 将运行但时间为 15 分钟倍数的任务。 (例如:John 想在明天下午 5:15 发布消息。他无法将此任务安排在 5:25,因为它不是 15 分钟的倍数。他只能安排在 5:15、5 这样的时间: 30、5:45、6:00 等)。

处理这些任务的最佳实践是什么?

我有这样的想法: 使用mysql数据库按时存储所有带有索引的任务。运行一个调度程序,它将拉取一个必须立即运行的任务,并在该任务拉动下一个任务后,依此类推。

最好的问候,亚历山大

最佳答案

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

什么是 quartz ? 作业调度库

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

关于mysql - 安排任务的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35964350/

相关文章:

mysql - 合并两个表中选定的列并将其存储在数据库中的另一个表中

mysql - 从命令行备份 MySql 数据库

javascript - 如何在 Angular 中安排任务

java Quartz2 cron触发器没有立即触发

java - 与反馈异步运行高计算任务

mysql - 独特的用户识别约束

mysql - VB.NET学分系统

perl - 使用 Schedule::Cron 更改预定时间

javascript - Node 调度程序在 Node 服务器崩溃时销毁任务

java - 根据某些事件启动 Spring 调度