【问题标题】:HangFire Recurring job at 3 given timesHangFire 在给定时间 3 次重复作业
【发布时间】:2019-12-25 08:42:20
【问题描述】:

我已经设置了一个循环作业在这个时候运行,但我想在 2 个更具体的时间重复它。我该怎么做?

app.UseHangfireDashboard();

RecurringJob.AddOrUpdate<TerminaTurnos>(t => t.Termina(),  Cron.Daily(22, 10), TimeZoneInfo.Local);

【问题讨论】:

    标签: c# asp.net-core hangfire


    【解决方案1】:

    您可以只创建 3 个循环作业(执行相同的作业)以在不同时间执行,并为每个作业提供 jobId 参数:

    RecurringJob.AddOrUpdate<TerminaTurnos>("job1", t => t.Termina(),  Cron.Daily(18, 10), TimeZoneInfo.Local);
    RecurringJob.AddOrUpdate<TerminaTurnos>("job2", t => t.Termina(),  Cron.Daily(20, 10), TimeZoneInfo.Local);
    RecurringJob.AddOrUpdate<TerminaTurnos>("job3", t => t.Termina(),  Cron.Daily(22, 10), TimeZoneInfo.Local);
    

    编辑:

    但是你也可以使用 cron 表达式来做一个重复的工作,比如:

    RecurringJob.AddOrUpdate<TerminaTurnos>(t => t.Termina(), "10 18,20,22 * * *", TimeZoneInfo.Local);
    

    它将执行作业at minute 10 past hour 18, 20, and 22.

    【讨论】:

    • 啊,我明白了,我以为我必须以某种方式在同一个上给它 3 个 cron 表达式
    • @Jackal 您还可以使用 cron 表达式创建一个循环作业。我编辑了我的答案。
    • 与第二个选项有什么区别?
    • 不同之处在于您只创建一个循环作业。
    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2015-08-27
    • 2022-01-11
    • 2020-01-11
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多