using Hangfire; using Microsoft.Extensions.DependencyInjection; using Znyc.CloudCar.Configuration; namespace Znyc.CloudCar.Core.Config { /// /// HangFire配置 /// public static class HangFireSetup { public static void AddHangFireSetup(this IServiceCollection services) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.AddHangfire(x => x.UseRedisStorage(AppSettingsConstVars.RedisConfigConnectionString)); services.AddHangfireServer(options => { options.Queues = new[] { GlobalEnumVars.HangFireQueuesConfig.@default.ToString(), GlobalEnumVars.HangFireQueuesConfig.apis.ToString(), GlobalEnumVars.HangFireQueuesConfig.web.ToString(), GlobalEnumVars.HangFireQueuesConfig.recurring.ToString() }; options.ServerTimeout = TimeSpan.FromMinutes(4); options.SchedulePollingInterval = TimeSpan.FromSeconds(15);//秒级任务需要配置短点,一般任务可以配置默认时间,默认15秒 options.ShutdownTimeout = TimeSpan.FromMinutes(30); //超时时间 options.WorkerCount = Math.Max(Environment.ProcessorCount, 20); //工作线程数,当前允许的最大线程,默认20 }); } } }