gpt4 book ai didi

asp.net - Hangfire 如何为网络农场工作?

转载 作者:行者123 更新时间:2023-12-04 20:33:52 24 4
gpt4 key购买 nike

我试图准确了解 Hangfire 在 Web 场中使用时的行为方式,其中每个 ASP.NET 应用程序的配置相同,并且有 N 个实例使用相同的共享 SQL Server 数据库进行 Hangfire 存储。

文档只是说分布式锁用于防止竞争条件,但这有点低级,我需要了解这在实践中意味着什么。

例子:

如果我有 5 个 Web 服务器实例,并且我创建了一个计划在每天下午 5 点运行一次的后台作业,这是否意味着获得作业“锁定”的第一个实例将最终运行它,并且所有其他实例会在锁定时忽略该作业吗?

我假设 Hangfire 一次只允许一个实例处理一项工作,但我还没有确认。

如果我真的想同时在每个服务器实例上运行一个作业呢?

如果有人对网络农场中的 Hangfire 有任何实际经验,我会全神贯注。

最佳答案

这些是我经过更多研究和测试后建立的基本规则:

  • Hangfire 将在具有可用容量的第一个 Hangfire 服务器上执行后台作业,该服务器基于该服务器上的工作线程数
  • Hangfire 将继续在该服务器上执行后台作业,直到工作池饱和,此时它将移动到场中的下一个可用服务器,依此类推
  • 如果 Hangfire 服务器使用相同的 Hangfire 存储实例,它们会自动包含在 Web 场中,因此一般来说不需要额外的配置。
  • 如果您想在特定服务器上运行特定的后台作业或使用不同的工作负载分配算法,您可以使用命名队列,其中一个队列被赋予一个名称并可能分配给特定的服务器实例,并且必须安排后台作业在该服务器上运行排队也是如此。
  • 关于asp.net - Hangfire 如何为网络农场工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889247/

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