60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
using New_College.Common.Helper;
|
||
using Microsoft.Extensions.Hosting;
|
||
using System;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using New_College.IServices;
|
||
|
||
namespace New_College.Tasks
|
||
{
|
||
public class UserBaseSettingJobTimedService : IHostedService, IDisposable
|
||
{
|
||
private Timer _timer;
|
||
private ID_UserSettingBaseServices _UserSettingBaseServices;
|
||
// 这里可以注入
|
||
public UserBaseSettingJobTimedService(ID_UserSettingBaseServices d_UserSettingBaseServices)
|
||
{
|
||
_UserSettingBaseServices = d_UserSettingBaseServices;
|
||
}
|
||
|
||
public Task StartAsync(CancellationToken cancellationToken)
|
||
{
|
||
Console.WriteLine("Job userbaseupdate is starting.");
|
||
// 获取当前时间
|
||
|
||
//_timer = new Timer(DoWork, null, TimeSpan.Zero,
|
||
// TimeSpan.FromSeconds(1));//一
|
||
|
||
|
||
|
||
|
||
DateTime currentTime = DateTime.Now;
|
||
// 计算距离晚上12点的时间间隔
|
||
TimeSpan timeUntilMidnight = TimeSpan.FromDays(1) - currentTime.TimeOfDay;
|
||
_timer = new Timer(DoWork, null, timeUntilMidnight, TimeSpan.FromDays(1));//小时
|
||
return Task.CompletedTask;
|
||
}
|
||
|
||
private void DoWork(object state)
|
||
{
|
||
|
||
_UserSettingBaseServices.UpdateBaseInit();//晚上12点同步
|
||
ConsoleHelper.WriteWarningLine($"userbaseJobstart : {DateTime.Now}");
|
||
}
|
||
|
||
public Task StopAsync(CancellationToken cancellationToken)
|
||
{
|
||
Console.WriteLine("userbaseJob is stopping.");
|
||
|
||
_timer?.Change(Timeout.Infinite, 0);
|
||
|
||
return Task.CompletedTask;
|
||
}
|
||
|
||
public void Dispose()
|
||
{
|
||
_timer?.Dispose();
|
||
}
|
||
}
|
||
}
|