【问题标题】:Quartz.net schedulerQuartz.net 调度器
【发布时间】:2015-11-24 05:46:48
【问题描述】:

我们已经安装了quartz.net 调度程序服务并配置了一个(内存)作业以在每天晚上10 点运行。如果托管此服务的服务器重新启动,是否有办法在服务启动后强制作业运行?在正常情况下,作业应按计划在晚上 10 点触发,但无论何时重新启动服务器/服务,我们都希望该作业立即运行,即使当时未计划运行。如果有一些配置值可以实现这一点,那将是最好的选择。

【问题讨论】:

    标签: quartz.net quartz.net-2.0


    【解决方案1】:

    编写一个小代码来读取一个小的 xml 文件(自定义一个你自己做的).... 并将其放入您的启动代码中。

    foreach( xmlElement in yourXmlFile)
    {
     string someJobName= ""; /* read xml for jobName */
        String someJobGroup= ""; /* read xml for job group name */
        Trigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity(someJobName, someJobGroup)
                    .startNow()
                    .build();
    
    }
    

    【讨论】:

      【解决方案2】:

      您可以借助CronScheduleBuilderWithMisfireHandlingInstructionFireAndProceed 方法执行此操作,如下所示:

      ITrigger trigger = TriggerBuilder.Create()
              .WithIdentity("trigger1", "group1")
              .StartNow()
              .WithSchedule(CronScheduleBuilder                   
                  .WeeklyOnDayAndHourAndMinute(DayOfWeek.Monday, 09, 00)
                  .WithMisfireHandlingInstructionFireAndProceed()     
                  //MISFIRE_INSTRUCTION_FIRE_NOW  
                  .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("GTB Standard Time"))
          )
          //.ForJob(myJobKey)
          .Build();
          scheduler.ScheduleJob(job, trigger); 
      

      希望这会有所帮助...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-02
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-09
        相关资源
        最近更新 更多