我正在使用由 IIS 托管的 HangFire,其应用程序池设置为“AlwaysRunning”。我正在使用 DI 的 Autofac 扩展。目前,当使用 HangFire 运行后台作业时,它们是按顺序执行的。这两个工作性质相似,都涉及文件 I/O。第一个作业执行并开始生成必需的文件。第二个作业执行并开始执行。然后它将停止执行,直到第一个作业完成,此时第二个作业被恢复。我不确定这是否与 DI 和生命周期范围有关。我倾向于不这样认为,因为我创建了每个依赖范围的实例。我正在使用 owin 引导hangfire,并且没有传递任何 BackgroundServer 选项,也没有通过属性应用任何提示。什么会导致作业按顺序执行?我正在使用工人的默认配置。我正在向 web api 发送一个发布请求,并使用以下内容将作业添加到队列中BackgroundJob.Enqueue<ExecutionWrapperContext>(c => c.ExecuteJob(job.SearchId, $"{request.User} : {request.SearchName}"));
提前致谢