UpgradeHostedService.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Microsoft.Extensions.Hosting;
  2. using Microsoft.Extensions.Logging;
  3. using System;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. namespace FastGithub.Upgrade
  7. {
  8. /// <summary>
  9. /// 升级后台服务
  10. /// </summary>
  11. sealed class UpgradeHostedService : BackgroundService
  12. {
  13. private readonly UpgradeService upgradeService;
  14. private readonly ILogger<UpgradeHostedService> logger;
  15. /// <summary>
  16. /// 升级后台服务
  17. /// </summary>
  18. /// <param name="logger"></param>
  19. public UpgradeHostedService(
  20. UpgradeService upgradeService,
  21. ILogger<UpgradeHostedService> logger)
  22. {
  23. this.upgradeService = upgradeService;
  24. this.logger = logger;
  25. }
  26. /// <summary>
  27. /// 检测版本
  28. /// </summary>
  29. /// <param name="stoppingToken"></param>
  30. /// <returns></returns>
  31. protected override async Task ExecuteAsync(CancellationToken stoppingToken)
  32. {
  33. try
  34. {
  35. await this.upgradeService.UpgradeAsync(stoppingToken);
  36. }
  37. catch (Exception ex)
  38. {
  39. this.logger.LogWarning($"升级失败:{ex.Message}");
  40. }
  41. }
  42. }
  43. }