我想基于实体运行cron任务,让我们调用该实体TaskEntity
TaskEntity可以提供有关需要完成的信息(特定于域)以及何时完成的信息。 when部分可以基于cron的方式指定
最初我想过调查Quartz但我找不到明确的例子
我不知道如何从这里开始。我只想让最终用户能够在运行时添加任意数量的任务。如果最终用户更改任务(即禁用它,删除它或更改时间),那么它应该相应地运行。
答案 0 :(得分:0)
我认为最简单的解决方案是使用调度程序。
启动时,读取所有实体并计算任务的下一个开始时间。
当达到该时间时,关闭任务,计算下一个开始时间并进入睡眠状态。您必须侦听实体的更新以重新计算下一个开始时间并在必要时重置调度程序。
您可以使用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 );