【问题标题】:Quartz.net Scheduler Trigger 4 times with difference of some miliseconds Deployed at IISQuartz.net Scheduler Trigger 4 次,相差几毫秒 部署在 IIS
【发布时间】:2021-09-14 06:39:11
【问题描述】:

我只想在一天的特定时间触发一次事件,但它触发了 4 次,相差几毫秒 下面是我的调度程序类

public class CustomerEventAssigningJobScheduler
{
    private static IScheduler _scheduler;
   
  
    public static IScheduler scheduler
    {
        get
        {
            if (_scheduler == null)
            {


                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler().Result;
                _scheduler = scheduler;
            }
            return _scheduler;
        }
    }

    public static async Task Start()
    {

        await scheduler.Start();
        IJobDetail job = JobBuilder.Create<CustomerEventAssigningJob>().WithIdentity("CustomerEventAssigningJob").Build();


        ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("CustomerEventAssigningJob")
            .WithDailyTimeIntervalSchedule
            (s =>

                 s.OnEveryDay()
               .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(00, 10))
                 .WithIntervalInHours(24)
                 .InTimeZone(TimeZoneInfo.Utc)                     
            )
            .Build();



        await scheduler.ScheduleJob(job, trigger);

    }
}

我试过了:.EndingDailyAfterCount(1)

但添加后不会触发

日志截图在这里:

【问题讨论】:

  • 这看起来不错,您确定您没有多次运行此代码,或者有多个应用程序正在运行,或者其他什么?
  • @TheGeneral 生产和开发应用程序运行在服务器上都有相同的代码
  • 像往常一样,我建议添加日志记录。您似乎也有一个数据库,检查那里有多少触发器。失败的触发器也可能导致立即重试。
  • @MarkoLahma 如何记录有多少触发器
  • IReadOnlyCollection&lt;TriggerKey&gt;triggers = await scheduler.GetTriggerKeys(GroupMatcher&lt;TriggerKey&gt;.AnyGroup());

标签: c# triggers quartz-scheduler quartz.net


【解决方案1】:

请检查下面,因为我们不需要使用 OnEveryDay(),因为我们已经使用了 WithIntervalInHours(24)。 ITrigger 触发器 = TriggerBuilder.Create() .WithDailyTimeIntervalSchedule (s => s.WithIntervalInHours(24) .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(00, 10)) ) .Build();

它需要检查服务器配置/部署,因为在本地机器上,它运行了一次。

【讨论】:

  • 但是触发两次是什么原因
  • 我已经使用了你的代码示例,但在部署后它仍然运行了 3 次,但在本地运行了一次
猜你喜欢
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
相关资源
最近更新 更多