我想基于实体运行 cron 任务,让我们调用该实体 TaskEntity
TaskEntity 可以拥有关于需要做什么(特定于域)和何时完成的信息。可以以基于 cron 的方式指定 when 部分
最初我想研究 Quartz 但我找不到明确的例子
我不知道如何从这里开始。我只想让最终用户能够在运行时添加任意数量的任务。如果最终用户更改了一项任务(即禁用它、删除它或更改时间),那么它应该做出相应的行为。
我想基于实体运行 cron 任务,让我们调用该实体 TaskEntity
TaskEntity 可以拥有关于需要做什么(特定于域)和何时完成的信息。可以以基于 cron 的方式指定 when 部分
最初我想研究 Quartz 但我找不到明确的例子
我不知道如何从这里开始。我只想让最终用户能够在运行时添加任意数量的任务。如果最终用户更改了一项任务(即禁用它、删除它或更改时间),那么它应该做出相应的行为。
我认为最简单的解决方案是使用调度程序。
启动时,读取所有实体并计算任务的下一个开始时间。
当达到那个时间时,启动任务,计算下一个开始时间并进入睡眠状态。您必须听取实体的更新以重新计算下一个开始时间并在必要时重置调度程序。
您可以为此使用 org.quartz.Scheduler。查看文档了解详细信息:http ://www.quartz-scheduler.org/docs/index.html
它看起来像这样。(你的 Job 必须实现 org.quartz.Job 接口)
Trigger trigger = new SimpleTrigger( "jobname", "scheduler group name", dateTime );
scheduler.scheduleJob( jobDetail, trigger );