【问题标题】:Java Scheduler Job/Task/Thread per entry in the database table数据库表中每个条目的 Java 调度程序作业/任务/线程
【发布时间】:2015-08-11 06:20:40
【问题描述】:
我想要一个调度程序,它可以在我的数据库表中为每个条目创建一个作业/任务/线程。
此外,我想要一种机制来启动、暂停、停止和重新启动每个作业,而不会影响其他作业/任务/线程。在任何时候,我都应该能够创建新工作或删除工作。
我打算通过一个托管在 tomcat 服务器上的 web 应用程序来处理上面提到的所有与作业相关的操作。
我应该选择哪个 Java 调度程序以及如何开始?
【问题讨论】:
标签:
java
jakarta-ee
scheduler
【解决方案1】:
您可以使用Quartz Scheduler
在 Quartz 中我建议使用 JDBJobStore,它允许您将作业存储在数据库中。
要在 DB 中为每个条目创建作业,您可以使用一个 JobcreatorFactory 从您的 DB 中读取条目,您可以为此创建作业,并且该作业将存储在 DB 中。
理想情况下,最好为您要创建的每个作业设置单独的作业类(扩展作业)。但是,当您想动态创建作业时,您可以拥有通用作业类,它获取该作业的上下文并根据您的通用作业类的覆盖方法内部的上下文执行相应的操作。
使用 Quartz 可以启动、停止、暂停您的工作,而不会影响其他工作。
希望这会有所帮助!