在我的情况下,允许客户安排工作。我可以看到,quartz通常使用cronExpression来执行计划。但是有许多客户有很多时间表,我不能写很多触发器bean因为我不知道有多少时间表,这取决于客户端。那么,有人会帮忙吗?
答案 0 :(得分:0)
Quartz旨在在运行时添加和删除作业和触发器。 Spring是一个退化的案例,其中所有触发器和作业都是在启动时定义的。在Quartz中,当拥有Scheduler
实例时,您可以根据自己的意愿轻松创建,浏览和删除触发器,例如How-To: Scheduling a Job:
// Define job instance
JobDetail job1 = newJob(ColorJob.class)
.withIdentity("job1", "group1")
.build();
// Define a Trigger that will fire "now", and not repeat
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.build();
// Schedule the job with the trigger
schedulder.scheduleJob(job, trigger);
请参阅official documentation,尤其是cookbook。
还要区分作业(包含在应该执行的类中的一段代码)和触发器(执行作业的时间条件)。请记住,默认情况下,当与作业关联的最后一个触发器(作业可能有多个触发器)触发时,作业将从调度程序中删除。