hangfire - 服务器之间的 Hangfire 负载平衡
问题描述
我有 3 个 Hangfire 服务器,它们都连接到同一个数据库。每晚一次,我有一个重复的工作,它将触发多个排队工作。
例如,我有服务器 A、B 和 C,晚上 10 点,我的重复作业在服务器 A 上运行,它将 15 个后台作业排入队列。但是,所有 15 个作业都将在服务器 A 上处理。我希望 A 上有 5 个作业,B 上有 5 个作业,C 上有 5 个作业。
是否可以像这样平衡负载?
解决方案
除了将每台服务器上的工作人员数量限制为 5 之外,第一个可用的工作人员将继续接手工作。QueuePollInterval 也参与其中。如果轮询时间长于您将有一台服务器的工作人员选择的工作。让它太小也可能导致对 db 的过度读取(当心)。
但是,只要您没有资源争用,您应该让服务器继续以当前行为运行。
推荐阅读
- wix - WiX:升级时替换子目录
- python - 如何将 python 生成器更改为 Keras 序列对象?
- python - “列表[元素]”对象没有属性“名称”
- c# - Lambda 表达式没有给出想要的结果
- javascript - 有没有办法删除对象键和属性?
- powershell - 以编程方式在组织级别更改用户的访问级别 - Azure DevOps Services
- java - CDI 在 jberet 实现下无法与 Java EE Batch 一起使用
- swift - 由于 MKPointAnnotation 上无法识别的选择器而导致崩溃
- angular - 如何防止在Angular中选择下拉值
- java - Apache Mina:如何编写 Http 服务器?