使用类字段中的cron表达式计划作业

时间:2016-07-26 20:18:17

标签: java spring cron scheduled-tasks

我试图找到它,但没有结果。我想让对象有bash脚本和cron表达式的路径,指定何时运行它。这是SpringBoot项目。我觉得这样:

public class TestScript {

    private String cronExpression;
    private String pathToFile;

    public void execute() {
        // either it's @Scheduled or execute another way
    }
}

有可能吗?如果可以,请指导我一点。

1 个答案:

答案 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