#region << 版 本 注 释 >>
|
/*----------------------------------------------------------------
|
* 命名空间:WIDESEAWCS_QuartzJob
|
* 创建者:胡童庆
|
* 创建时间:2024/8/2 16:13:36
|
* 版本:V1.0.0
|
* 描述:调度服务层实体映射
|
*
|
* ----------------------------------------------------------------
|
* 修改人:
|
* 修改时间:
|
* 版本:V1.0.1
|
* 修改说明:
|
*
|
*----------------------------------------------------------------*/
|
#endregion << 版 本 注 释 >>
|
|
using Microsoft.Extensions.Logging;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEAWCS_Core.Seed;
|
using WIDESEAWCS_Core;
|
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.Hosting;
|
using WIDESEAWCS_QuartzJob.Seed;
|
using WIDESEAWCS_QuartzJob.Service;
|
|
namespace WIDESEAWCS_QuartzJob.QuartzExtensions
|
{
|
public sealed class QuartzJobDataTableHostedService : IHostedService
|
{
|
private readonly DBContext _dbContext;
|
private readonly ILogger<QuartzJobDataTableHostedService> _logger;
|
private readonly string _webRootPath;
|
private readonly IServiceProvider _serviceProvider;
|
|
public QuartzJobDataTableHostedService(
|
IServiceProvider serviceProvider,
|
IWebHostEnvironment webHostEnvironment,
|
ILogger<QuartzJobDataTableHostedService> logger)
|
{
|
_serviceProvider = serviceProvider;
|
_logger = logger;
|
_webRootPath = webHostEnvironment.WebRootPath;
|
using var scope = _serviceProvider.CreateScope();
|
DBContext dbContext = scope.ServiceProvider.GetService<DBContext>();
|
_dbContext = dbContext;
|
}
|
|
public async Task StartAsync(CancellationToken cancellationToken)
|
{
|
_logger.LogInformation("开始创建定时器调度数据表");
|
await DoWork();
|
}
|
|
private async Task DoWork()
|
{
|
try
|
{
|
await QuartzJobCreateDataTabel.SeedAsync(_dbContext, _webRootPath);
|
}
|
catch (Exception ex)
|
{
|
_logger.LogError(ex, "定时器调度数据表创建错误");
|
throw;
|
}
|
}
|
|
public Task StopAsync(CancellationToken cancellationToken)
|
{
|
_logger.LogInformation("定时器调度数据表结束");
|
return Task.CompletedTask;
|
}
|
}
|
}
|