当前位置: 首页 > 知识库问答 >
问题:

使用类字段中的cron表达式安排作业

卓正业
2023-03-14

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

public class TestScript {

    private String cronExpression;
    private String pathToFile;

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

可以做到吗?如果可以的话,请稍微指导我一下。

共有1个答案

严兴言
2023-03-14

好的,我设法制作了动态创建作业的自定义服务:

@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();
        }
    }

}

< code>TestScript类实现< code>org.quartz.Job,我使用quartz库版本2.2.1

 类似资料:
  • 我正在使用石英调度程序来安排我的工作。我有一个错误的cron表达式: 当我这样做的时候: is。但是当我查看表达式时,它显然是错误的。其他人也面临类似的问题吗? 注:包装为:包装组织。石英 石英的版本是:2.2.3 请检查来自的CronExpression类http://www.javadoc.io/doc/org.quartz-scheduler/quartz/2.2.3 我还尝试了类的方法,但

  • 我想基于cron表达式运行一个作业,但它应该在rest调用后从DB中查找cron表达式。 一旦rest api被命中,它应该等待cron表达式,我们可以从数据库或任何方法获得它,然后它应该在指定的时间启动。 它的工作方式与普通的方法调用类似。

  • 在不提取字段的情况下,我想搜索不包含“country=$”的任何事件,即事件不能以“country=”结尾。我可以将其regex为“country=(?!$)”,但这仍然需要country出现在事件中,这不是我想要的。 示例:我的搜索: 在一个常规的regex解释器中,我已经用(?!(country=$))匹配了它就足够了,但是splunk不理解这一点,并且命中了所有事件。

  • 如果我以通常的方式声明一个类,我可以使用类名作为类型: 但是,如果我通过将类表达式分配给变量来声明一个类,我就不能将该名称用作类型: 建议使用不起作用,因为我想要的实例类型,而不是类本身的类型。 typescript操场示例 如何获取以第二种方式定义的类的实例类型? 我对以这种方式定义类感兴趣的原因是,我希望有一个接口来描述某些类将具有的静态方法,如此处的手册中所述(该部分中的第三个示例)。 下面

  • null 上个月的第一天和本月的第一天 上月1日和本月第3个工作日 当前星期的星期一日期和当前星期的staturday日期。