0

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

4

2 回答 2

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

}
于 2015-12-01T02:24:28.007 回答
0

您可以借助如下所示的WithMisfireHandlingInstructionFireAndProceed方法执行此操作:CronScheduleBuilder

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); 

希望这可以帮助...

于 2016-04-28T20:27:19.477 回答