Hangfire时区问题

问题描述

使用Hangfire的过程中,有一个定时任务设置每天6点执行一次(0 6 * * *)但是实际上是每天14点执行,跟设定时间相差8小时。

原因

HangFire默认使用UTC时区,跟国内正好相差8小时

图片[1]-Hangfire时区问题-涣清博客

解决措施

1.使用本地时区

RecurringJob.AddOrUpdate(() =>GetInterfaceCradData(), "0 50 01 * * ?", TimeZoneInfo.Local);

2.强制使用中国时区

var china = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
RecurringJob.AddOrUpdate(() => GetService<IAWMethodService>().SyncInventory(), Cron.Daily(6),new RecurringJobOptions { TimeZone = china }); 

效果

成功修改了UTC时区为China

图片[2]-Hangfire时区问题-涣清博客
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容