我试图找到它,但没有结果。我想让对象有bash脚本和cron表达式的路径,指定何时运行它。这是SpringBoot项目。我觉得这样:
public class TestScript {
private String cronExpression;
private String pathToFile;
public void execute() {
// either it's @Scheduled or execute another way
}
}
有可能吗?如果可以,请指导我一点。
答案 0 :(得分:1)
好的,我设法创建了动态创建作业的自定义服务:
@Service
public class DynamicJob {
public void schedule(TestScript testScript) {
try {
JobDetail job = JobBuilder.newJob(TestScript.class)
.withIdentity(testScript.getName(), "default group")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(testScript.getName().concat(" trigger"), "groupAll")
.withSchedule(CronScheduleBuilder.cronSchedule(testScript.getCronExpression()))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
} catch (Exception e) {
e.printStackTrace();
}
}
}
TestScript
类实现org.quartz.Job
,我使用quartz库版本2.2.1