【问题标题】:How is this Quartz Cron Expression executed这个 Quartz Cron 表达式是如何执行的
【发布时间】:2010-11-11 06:59:53
【问题描述】:

我有以下;

private String cronExpression = "";
private final String jobID = "MyJObID";
...
Scheduler scheduler = ServiceLocator.getInstance().getScheduler();
CronTrigger trigger = new CronTrigger(jobID , Scheduler.DEFAULT_GROUP, cronExpression);
JobDetail jobDetail = new JobDetail(jobID , Scheduler.DEFAULT_GROUP, MyJob.class);
scheduler.scheduleJob(jobDetail, trigger);

我的问题是什么时候为空的 cron 表达式触发这个作业?

【问题讨论】:

  • 这只是出于好奇,还是您的应用程序实际上在这样做?如果是后者,有什么用?
  • 我的应用程序实际上正在这样做。我修改了部分代码,想做一些测试。

标签: cron quartz-scheduler scheduling


【解决方案1】:

你确定它有效吗?

仅通过查看org.quartz.CronExpression#buildExpression() 方法代码,似乎应该抛出异常:

        if (exprOn <= DAY_OF_WEEK) {
            throw new ParseException("Unexpected end of expression.",
                        expression.length());
        }

      // exprOn should be equal to SECOND in case of empty String given

[在 Quartz 1.6.0 中检查]

【讨论】:

  • FWIW 每天早上 8 点发送
  • 查看 Quartz 1.5.1 的源代码(这次是 CronTrigger.buildExpression()),同样的异常被抛出。您是否尝试过在某处调试并设置断点?
【解决方案2】:

感谢大家的帮助,找到问题了。

经过一夜的搜索,我发现该类在 JBoss 中注册为 MBean,并且 cron 表达式属性的值在部署描述符中设置为某个有意义的值

叹息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多