【问题标题】:Need to trigger a job as and when quartz scheduler starts需要在石英调度程序启动时触发作业
【发布时间】:2016-02-13 11:56:38
【问题描述】:

Quartz 调度程序在我启动时不会触发我的工作。我的工作安排为每小时。但是在启动我的调度程序后,我的第一份工作在一个小时后被触发。我是石英的新手。下面是我的石英启动代码

    JobKey feedWSClient = new JobKey("feedWSClient", "feed-validator");
    JobDetail feedWSJob = JobBuilder.newJob(this).withIdentity(feedWSClient).build();
    Trigger feedWSCListenerTrigger = TriggerBuilder.newTrigger()
       .withIdentity("feedWSCListenerTrigger","feed-validator")
       .withSchedule(CronScheduleBuilder.cronSchedule("0 0/59 * * * ?")).build();       

    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.scheduleJob(feedWSJob,feedWSCListenerTrigger);
    scheduler.start();

【问题讨论】:

  • 您的 cron 字符串的意思是“在午夜的第 0 分钟和每 59 小时执行一次”(这没有意义)。我认为您应该将第二个字段更改为*
  • 谢谢,但是给定的玉米表达式应该每小时执行一次,没有问题,只是在启动调度程序时它不会启动。你有什么想法吗?
  • 这是不正确的(应该是0 * * * * ?),但也许它只是忽略了你的第二个字段,因为它没有意义。无论如何,它明确表示从每小时的第 0 分钟开始。它与您启动调度程序的时间无关,仅与时钟有关。
  • idk,它实际上对我有用。例如,如果我更改它 0 0/1 * * * ?每分钟触发一次作业。我刚试过。也许我会再看看它。

标签: java quartz-scheduler


【解决方案1】:

以下代码对我有用。 http://quartz-scheduler.org/api/2.2.0/

scheduler.start();
scheduler.triggerJob(feedWSClient);

用jobkey启动调度器后需要调用上述语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 2022-10-13
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 2019-06-20
    • 2017-12-23
    • 2011-01-30
    相关资源
    最近更新 更多