简体   繁体   English

使用来自类字段的cron表达式调度作业

[英]Schedule job using cron expression from class field

I tried to find it, but without results. 我试图找到它,但是没有结果。 I'd like to have object having path to bash script and cron expression specifying when to run it. 我想让对象具有bash脚本和cron表达式的路径,指定何时运行它。 It's SpringBoot project. 这是SpringBoot项目。 I see it like this: 我看到这样的:

public class TestScript {

    private String cronExpression;
    private String pathToFile;

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

Is it possible to do? 有可能吗? Please guide me even a little if you can. 如果可以的话,请甚至指导我一点。

Ok, I managed to make my custom service that dynamically creates jobs: 好的,我设法制作了可动态创建作业的自定义服务:

@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 class implements org.quartz.Job and I use quartz library version 2.2.1 TestScript类实现org.quartz.Job ,我使用的石英库版本为2.2.1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM