Hangfire CRON在UTC时间

Ana*_*hid 11 asp.net-mvc cron hangfire

我试图在我的MVC应用程序中每天从00:00开始配置一个定期任务.我知道这可以通过实现RecurringJob.AddOrUpdate(() => Console.Write("Easy!"), Cron.Daily);.现在我的问题是hangfire cron是基于UTC时间还是服务器上的本地时间工作的.如果它在本地时间工作,有没有办法在UTC时间运行?我必须这样做,因为这将是一个日终过程,所有计划的任务都是根据我的数据库中的通用时间安排的.

Yog*_*ogi 18

要执行的任务UTC时区,可以提供TimeZoneInfoTimeZoneInfo.Utc在定义作业.

RecurringJob.AddOrUpdate(() => Console.Write("Easy!"), Cron.Daily, TimeZoneInfo.Utc);
Run Code Online (Sandbox Code Playgroud)

要在本地时区执行作业,您可以使用TimeZoneInfo.Local.


Aru*_*E S 11

要在特定时区而不是 UTC 中运行,请查找TimeZoneInfo您想要的。任务将在午夜运行。

var manager = new RecurringJobManager();
manager.AddOrUpdate("some-id", Job.FromExpression(() => Method()),
    Cron.Daily(),
    TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"));
Run Code Online (Sandbox Code Playgroud)