gpt4 book ai didi

hangfire - 在 ASPNET Core 2.1 应用程序中正确设置 Hangfire 作业?

转载 作者:行者123 更新时间:2023-12-02 22:12:13 25 4
gpt4 key购买 nike

迁移到 asp.net core 2.1 破坏了我们的 Hangfire 作业设置。

Program.csMain 方法中,我们有类似的内容

var webHost = BuildWebHost(args);
ConfigureHangfireJobs(webHost);
webHost.Run();

BuildWebHost 如下所示:

return WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(ConfigConfiguration)
.UseStartup<Startup>()
.UseApplicationInsights()
.Build();

ConfigureHangfireJobs 正在调用 RecurringJob.AddOrUpdate() ,它需要设置 JobStorage.Current ,我发现当添加hangfireserver中间件,同时在Startup.ConfigureServices方法中配置hangfire服务。据我所知,中间件设置是在 Startup 类的 Configure 方法中完成的,所以这就是我们调用 app.UseHangfireServer 的地方> 设置JobStorage.Current

使用 core 2.0,一切都运行良好,因为在 BuildWebHost() 方法期间调用了 Configure 方法,因此 JobStorage.Current 是然后进行设置并可用于 ConfigureHangfireJobs。但是,当切换到核心 2.1 时,Configure 现在作为 webHost.Run() 方法的一部分进行调用。这意味着我们的 ConfigureHangfireJobs 现在失败,因为 JobStorage.Current 尚未准备好。

现在,我当然可以将hangfire 作业设置为Startup.Configure 方法的一部分,但这不是它所属的地方。另一种选择是自己设置 JobStorage.Current,但这不是hangfireserver 中间件的责任吗?

所以我的问题是:我们应该如何在 core 2.1 中正确设置hangfire 作业?

最佳答案

好的,我通过像这样请求 JobStorage 服务来让它工作:

services.GetRequiredService<JobStorage>();

即使我不需要手动操作它,它也会设置 JobStorage.Current。

关于hangfire - 在 ASPNET Core 2.1 应用程序中正确设置 Hangfire 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50907533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com