#region << 版 本 注 释 >>
|
/*----------------------------------------------------------------
|
* 命名空间:WIDESEAWCS_QuartzJob
|
* 创建者:胡童庆
|
* 创建时间:2024/8/2 16:13:36
|
* 版本:V1.0.0
|
* 描述:调度服务自动开启
|
*
|
* ----------------------------------------------------------------
|
* 修改人:
|
* 修改时间:
|
* 版本:V1.0.1
|
* 修改说明:
|
*
|
*----------------------------------------------------------------*/
|
#endregion << 版 本 注 释 >>
|
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Logging;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Reflection;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_QuartzJob.DeviceBase;
|
using WIDESEAWCS_QuartzJob.DTO;
|
using WIDESEAWCS_QuartzJob.Models;
|
using WIDESEAWCS_QuartzJob.QuartzNet;
|
using WIDESEAWCS_QuartzJob.Service;
|
|
namespace WIDESEAWCS_QuartzJob.QuartzExtensions
|
{
|
/// <summary>
|
/// 启动程序自动开启调度服务
|
/// </summary>
|
public class QuartzJobHostedService : IHostedService
|
{
|
private readonly ISchedulerCenter _schedulerCenter;
|
private readonly ILogger<QuartzJobHostedService> _logger;
|
private readonly IDeviceInfoService _deviceInfoService;
|
private readonly IDispatchInfoService _dispatchInfoService;
|
private readonly IDeviceProtocolDetailService _deviceProtocolDetailService;
|
private readonly QuartzNetExtension _quartzNetExtension;
|
|
/// <summary>
|
/// 启动程序自动开启调度服务
|
/// </summary>
|
public QuartzJobHostedService(ILogger<QuartzJobHostedService> logger, IDeviceInfoService deviceInfoService, IDispatchInfoService dispatchInfoService, ISchedulerCenter schedulerCenter, IDeviceProtocolDetailService deviceProtocolDetailService, QuartzNetExtension quartzNetExtension)
|
{
|
_logger = logger;
|
_deviceInfoService = deviceInfoService;
|
_dispatchInfoService = dispatchInfoService;
|
_schedulerCenter = schedulerCenter;
|
_deviceProtocolDetailService = deviceProtocolDetailService;
|
_quartzNetExtension = quartzNetExtension;
|
}
|
|
/// <summary>
|
/// 启动程序自动开启调度服务
|
/// </summary>
|
/// <param name="cancellationToken"></param>
|
/// <returns></returns>
|
public async Task StartAsync(CancellationToken cancellationToken)
|
{
|
await _quartzNetExtension.StartAsync();
|
}
|
|
/// <summary>
|
/// 启动程序自动开启调度服务
|
/// </summary>
|
public Task StopAsync(CancellationToken cancellationToken)
|
{
|
_logger.LogInformation("Stop QuartzJob Service!");
|
return Task.CompletedTask;
|
}
|
}
|
}
|