using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Hosting; using MySystem; public class PublicErrService : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { ProgressStart(); await Task.Delay(5000); } } private void ProgressStart() { List BrandList = RedisDbconn.Instance.GetList("brand", 1, 1000); Parallel.ForEach(BrandList, brand => { Dictionary data = new Dictionary(); try { data = RedisDbconn.Instance.RPop>(brand.ReqType + "_err"); RedisDbconn.Instance.AddList(brand.ReqType, data); } catch (Exception ex) { data.Add("TransferErr", ex.ToString()); data.Add("TransferErrTime", DateTime.Now.ToString()); RedisDbconn.Instance.AddList(brand.ReqType + "_service_err", data); } }); } }