参数说明:
centos系统是7.9版本的
hangfire是Hangfire 1.8.7
centos系统的目前设置时区是cts的东八时区,截图如下
原因:
hangfire任务设定每天执行时间+东八=实际偏移的执行时间
比如:你设定的是早上6点执行+东八=实际下午两点执行
解决方法:
var job = service.GetService<CommonJobs>();
RecurringJob.AddOrUpdate("每日定时请求的服务", () => job.GetToDayNews(), CronType.TodaySix(6), TimeZoneInfo.FindSystemTimeZoneById("Asia/Shanghai"));//周期性为每天早上6点
重点是:TimeZoneInfo.FindSystemTimeZoneById("Asia/Shanghai")
效果截图如下:
附带:解释其中CronType.TodaySix(6)的代码如下:
/// <summary>
/// 周期性为每天早上6点
/// </summary>
/// <param name="interval">周期性为每天早上6点</param>
/// <returns></returns>
public static string TodaySix(int interval = 6)
{
return "0 0 " + interval.ToString() + " * * ?";
}