网站制作有哪些企业,商城分销,织梦做响应式网站,忻州企业网站建设定时任务调度问题#xff0c;是一个老生常谈的问题。网上有许多定时任务调度的解决方案#xff0c;以前主要是使用Window计划和Window服务来做任务定时执行#xff0c;然后就开始使用定时任务调度框架Quartz.Net。Hangfire这个自带后台任务调度面板#xff0c;可以在后台手… 定时任务调度问题是一个老生常谈的问题。网上有许多定时任务调度的解决方案以前主要是使用Window计划和Window服务来做任务定时执行然后就开始使用定时任务调度框架Quartz.Net。Hangfire这个自带后台任务调度面板可以在后台手动执行任务的神奇的任务调度框架。 Hangfire是一个开源的.NET任务调度框架提供了内置集成化的控制台可以直观明了的查看作业调度情况并且Hangfire不需要依赖于单独的应用程序执行如windows服务window计划。并且支持持久性存储。最近在搞Hangfire任务下面总结下几个设置1、配置面板权限var filter new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions{SslRedirect false,RequireSsl false,LoginCaseSensitive false,Users new[]{new BasicAuthAuthorizationUser{Login System.Configuration.ConfigurationManager.AppSettings[user],PasswordClear System.Configuration.ConfigurationManager.AppSettings[pwd]}}});var options new DashboardOptions{AuthorizationFilters new[] {filter}};app.UseHangfireDashboard(/hangfire, options);2、已完成的job设置过期防止数据无限增长public class SucceededStateExpireHandler : IStateHandler{public TimeSpan JobExpirationTimeout;public SucceededStateExpireHandler(int jobExpirationTimeout){JobExpirationTimeout TimeSpan.FromMinutes(jobExpirationTimeout);}public string StateName SucceededState.StateName;public void Apply(ApplyStateContext context, IWriteOnlyTransaction transaction){context.JobExpirationTimeout JobExpirationTimeout;}public void Unapply(ApplyStateContext context, IWriteOnlyTransaction transaction){}3、设置工作的线程数app.UseHangfireServer(new BackgroundJobServerOptions { WorkerCount int.Parse(System.Configuration.ConfigurationManager.AppSettings[WorkerCount]) });4、添加BackgroundJobtry{BackgroundJob.Enqueue(() CreateJob(info));}catch (Exception ex){Logger.Default.Error(CreateJob失败 ex.ToString());}TextBuffer.WriteLine(Background job has been created.);