using System.Linq.Expressions;
using Hangfire;
using Hangfire.Dashboard.BasicAuthorization;
using Microsoft.AspNetCore.Builder;
namespace DS.WMS.Core.HangfireJob.Method
{
///
/// 注册Hangfire定时任务的中间件
///
public static class JobMiddleware
{
///
/// 注册Hangfire定时任务的中间件
///
///
///
public static WebApplication UseJobMiddlewares(this WebApplication app)
{
//app.UseHangfireServer(); // 用于将 Hangfire 任务处理服务器添加到请求处理管道中
// 将 Hangfire 仪表板添加到应用程序的请求处理管道中
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
Authorization = [new BasicAuthAuthorizationFilter(new BasicAuthAuthorizationFilterOptions
{
RequireSsl = false,
SslRedirect = false,
LoginCaseSensitive = true,
Users = new []
{
new BasicAuthAuthorizationUser
{
Login = "admin",
PasswordClear = "ds2024"
}
}
})]
});
return app;
}
///
/// 注册定时任务
///
///
///
/// CRON表达式
/// 任务ID
public static void RegisterJob(Expression> methodCall, string cron, string? jobId = null)
{
RecurringJob.AddOrUpdate(jobId ?? typeof(T).FullName, methodCall, cron);
}
}
}