#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; } } }