我正在使用 Hangfire 来安排我的工作人员服务中的作业,并希望使用 Hangfire 仪表板。但似乎没有办法配置这个。所有文档都使用 Startup 类,但我的工作服务中没有任何启动。另外,.Net 5 不支持 OWIN NuGet 包。这是我尝试过的,
var hostBuilder = CreateHostBuilder(args)
.Build();
var services = hostBuilder.Services;
var applicationBuilder = new ApplicationBuilder(services);
applicationBuilder.UseRouting();
applicationBuilder.UseHangfireDashboard("/hangfire");
applicationBuilder.UseEndpoints(endpoints =>
{
endpoints.MapHangfireDashboard();
});
hostBuilder.Run();
Run Code Online (Sandbox Code Playgroud)
我已经像这样配置了hangfire,
services.AddHangfire(configuration => configuration
.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseRecommendedSerializerSettings()
.UseSqlServerStorage("connection string",
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
QueuePollInterval = TimeSpan.Zero,
UseRecommendedIsolationLevel = true,
DisableGlobalLocks = true
}));
// Add the processing server as IHostedService
services.AddHangfireServer();
Run Code Online (Sandbox Code Playgroud)
请注意,在当前的实现中,我可以通过hangfire 来安排和执行作业,我现在需要的只是配置hangfire 仪表板。