1 using Microsoft.Extensions.Configuration; 2 using Microsoft.Extensions.Hosting; 3 using Orleans; 4 using Star.Helpers; 5 using Star.IModuleServices.Common.Interfaces.System; 6 using Star.IModuleServices.Common.Models.System.SettingHotUpdate.Responses; 7 using System; 8 using System.Collections.Concurrent; 9 using System.Collections.Generic;10 using System.Threading;11 using System.Threading.Tasks;12 using Star.Service.Project.Admin.Tool.ConfigTime;13 namespace Star.Service.Project.Admin.Tool.ConfigTime14 {15     /// 16     /// 简单的定时任务执行17     /// 18     public class TimedExecutService : BackgroundService19     {20         protected override async Task ExecuteAsync(CancellationToken stoppingToken)21         {22             try23             {24                 Console.WriteLine(DateTime.Now.ToString() + "BackgroundService:启动");25 26                 while (!stoppingToken.IsCancellationRequested)27                 {28                     await Task.Delay(5000, stoppingToken); //启动后5秒执行一次 (用于测试)29                     //数据源30                     ApiResult<List> list = new ApiResult<List>();31                     try32                     {33                         var cluster = Ioc.GetService();34                         list = await cluster.GetGrain(0).GetList("Star.Service.Project.Admin");35                     }36                     catch (Exception ex)37                     {38                         throw new Exception("未获取到相关配置:" + ex.Message);39                     }40 41                     if (list.Data.Count <= 0)42                     {43                         throw new Exception("未获取到相关配置");44                     }45                     //自定义数据处理46                     ConfigData.Data = new ConcurrentDictionary<string, string>();47                     list.Data.ForEach(c =>48                     {49                         ConfigData.Data[c.K] = c.V;50                     });51                     Console.WriteLine(DateTime.Now.ToString() + " 执行逻辑");52                 }53                 Console.WriteLine(DateTime.Now.ToString() + "BackgroundService:停止");54             }55             catch (Exception ex)56             {57                 if (!stoppingToken.IsCancellationRequested)58                 {59                     Console.WriteLine(DateTime.Now.ToString() + "BackgroundService:异常" + ex.Message + ex.StackTrace);60                 }61                 else62                 {63                     Console.WriteLine(DateTime.Now.ToString() + "BackgroundService:停止");64                 }65             }66         }67       68     }69 }

注入定时任务:
services.AddSingleton