【问题标题】:Schedule a Cron Job to start immediately when web application is deployed安排 Cron 作业在部署 Web 应用程序时立即启动
【发布时间】:2017-05-26 20:54:03
【问题描述】:

部署应用程序后,我正在编写作业。该作业应每 5 分钟运行一次,并且应立即启动。但问题是它在部署后 5 分钟开始,每 5 分钟重复一次。请帮助我进行所需的更改,以便在部署应用程序时立即启动它。

 public void contextInitialized(ServletContextEvent servletContextEvent) {
        logger.info("contextInitialized() ,Starting instantiating Processor Engine");
        try{
        JobDetail job = newJob(MyServiceProcessor.class).withIdentity(
                "CronQuartzJob", "Group").build();
        Trigger trigger = newTrigger().withIdentity("TriggerName", "Group").withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * * * ?")).build();
        scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);

        }
        catch (SchedulerException e) {
            logger.error(", contextInitialized() ,Problem in starting Processor Engine"+e);
    }

【问题讨论】:

  • 您在使用哪个服务器和框架进行 Web 应用程序??
  • 嗨!如果以下答案之一帮助您解决了您的问题,请记得将其标记为已接受,以便您的问题显示为已回答,谢谢 :)

标签: java cron quartz-scheduler crontrigger servlet-listeners


【解决方案1】:

不要使用CronTrigger 进行如此简单的调度。请改用SimpleTrigger

Trigger trigger = newTrigger()
        .withIdentity("TriggerName", "Group")
        .withSchedule(SimpleTriggerBuilder.simpleSchedule()
                    .withIntervalInMinutes(5)
                    .repeatForever())
        .build();

这将安排您的作业立即触发,然后每 5 分钟触发一次。

有关SimpleTrigger 的更多用法,您可以阅读Quartz's tutorial on it

【讨论】:

    【解决方案2】:

    我认为这样你不能立即开始工作。 cron 表达式每 0 或 5 分钟触发一次。

    如果您不需要 JobExecutionContext,您可以另外实例化作业并在 contextInitialized() 中手动执行它。

    MyServiceProcessor mjob = new MyServiceProcessor();
    mjob.execute(null);
    

    【讨论】:

    • "The cron-expression triggers each 0 or 5 minutes" 这不是 cron 语法的工作原理。 0/5 表示“从零分钟开始每五分钟”。此外,直接调用execute() 意味着您正在覆盖调度程序:没有重叠控制,没有中断,如果您调用getCurrentlyExecutingJobs(),则不会跟踪作业,没有关于上次执行或经过时间的信息......
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2012-11-06
    • 2018-02-09
    • 2012-12-10
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 2015-06-23
    相关资源
    最近更新 更多