using FastGithub.Scanner; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using System.Threading; using System.Threading.Tasks; namespace FastGithub { /// /// 完整扫描后台服务 /// sealed class GithubFullScanHostedService : BackgroundService { private readonly GithubScanService githubScanService; private readonly IOptionsMonitor options; /// /// 完整扫描后台服务 /// /// /// public GithubFullScanHostedService( GithubScanService githubScanService, IOptionsMonitor options) { this.githubScanService = githubScanService; this.options = options; } /// /// 后台轮询扫描 /// /// /// protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (stoppingToken.IsCancellationRequested == false) { await githubScanService.ScanAllAsync(stoppingToken); await Task.Delay(this.options.CurrentValue.FullScanInterval, stoppingToken); } } } }