gpt4 book ai didi

.net - 使用 Hangfire,如何配置 Web 应用程序以使用 BackgroundJobClient.Create 排队而不启动进程内服务器?

转载 作者:行者123 更新时间:2023-12-05 03:55:41 25 4
gpt4 key购买 nike

我们的 Web 应用程序使用 BackgroundJobClient.Create 对作业进行排队,但我们希望在单独的 Windows 服务中而不是在我们的 Web 应用程序中处理所有作业。如果我们的 Web 应用程序在未调用 builder.UseHangfireServer 的情况下启动,则创建新作业会引发以下错误:

System.InvalidOperationException: 
JobStorage.Current property value has not been initialized.
You must set it before using Hangfire Client or Server API.

看起来 AddHangfire(options => ...UseSqlServerStorage(...) lambda 直到调用 UseHangfireServer 才会运行。作为解决方法,我们可以配置我们的 Web 应用程序以监听以某些 GUID 命名的队列,但这似乎是对 Web 应用程序资源的浪费,因为它可能会在网络场中运行多个实例。

有什么方法可以在不在同一进程中启动 Hangfire 服务器的情况下配置 Hangfire 客户端?

最佳答案

Is there any way to configure a Hangfire client without starting a Hangfire server in the same process ?

是的,据我所知,对于客户端模块,您只需要像这样创建您的BackgroundJobClient:

IBackgroundJobClient client = new BackgroundJobClient(new SqlServerStorage(yourConnectionString)) ;
// or any overload of the SqlServerStorage constructor.

关于.net - 使用 Hangfire,如何配置 Web 应用程序以使用 BackgroundJobClient.Create 排队而不启动进程内服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005510/

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