using Hangfire; using Hangfire.Dashboard; using Hangfire.Dashboard.BasicAuthorization; using IRaCIS.Application.Services.BackGroundJob; using IRaCIS.Core.API.Filter; using IRaCIS.Core.Application.Helper; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; namespace IRaCIS.Core.API { public static class HangfireConfig { public static void UseHangfireConfig(this IApplicationBuilder app, IWebHostEnvironment env) { app.UseHangfireDashboard("/api/hangfire", new DashboardOptions() { //直接访问,没有带token 获取不到用户身份信息,所以这种自定义授权暂时没法使用 //Authorization = new[] { new hangfireAuthorizationFilter() } //本地请求 才能看 //Authorization = new[] { new LocalRequestsOnlyAuthorizationFilter() } Authorization = new BasicAuthAuthorizationFilter[] { new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions(){ SslRedirect=false, RequireSsl=false, Users=new BasicAuthAuthorizationUser[]{ new BasicAuthAuthorizationUser(){ Login="admin", PasswordClear="test", } } }) } }); #region hangfire HangfireJobHelper.ImmediatelyOnceOnlyJob( t => t.InitHangfireJobTaskAsync() ); //// 延迟任务执行 1秒之后执行 有时启动没运行 换成添加到队列中 //BackgroundJob.Schedule(t => t.MemoryCacheTrialStatus(), TimeSpan.FromSeconds(1)); ////添加到后台任务队列, //BackgroundJob.Enqueue(t => t.MemoryCacheTrialStatus()); //周期性任务,1天执行一次 //RecurringJob.AddOrUpdate(t => t.ProjectStartCache(), Cron.Daily); #endregion } } }