sidekiq - Sidekiq:分配权重会导致优先级队列语义吗?
问题描述
在我的 Sidekiq Pro 设置中,我有大约 10 个不同权重的队列。我的意图是使用权重来指示队列的优先级。
前几天我发生了一个事件,导致从一批中产生了大量的低权重作业,并且似乎对高权重作业也有竞争效应。
在文档的这一部分中,我阅读了以下内容:
每个队列都可以配置一个可选的权重。权重为 2 的队列被检查的频率是权重为 1 的队列的两倍
这让我有点困惑。我可以期望权重产生优先队列语义吗?
解决方案
正如@MikePerham 指出的那样,文档包括有关使用权重时调度程序中的出队机制的详细信息:
使用加权排序时,sidekiq 会随机选择一个队列进行检查,不会阻塞,使用加权随机选择。
我误解了选择队列时可能会默认和执行多个作业,但是现在我考虑到这一点,这种行为只会添加一个额外的,非敏感的调度层,而实际上sidekiq并没有添加sidekiq。那样工作。
考虑到这一点,当考虑大量排队作业时(由于队列选择的随机性),优先级队列语义是使用权重实现的。
推荐阅读
- facebook - Public Feed API 的请求提交
- sql - 带有内部数组的 Json 中的 MSSQL 搜索
- amazon-web-services - Cloudfront 将行为路径附加到源请求
- linux - 如何确定 .bashrc 是否在 VSCode 终端内运行
- unit-testing - 单元测试检查 DRF 中的对象级别权限或发出警告的通用解决方案
- flutter - Flutter Firestore 查询索引
- javascript - 如何使用 Javascript 从 USB 获取文件
- android - 禁用 ViewPager 中特定区域的滚动
- linux - AWS Workspace Crontab 仅在用户登录时运行
- python - 是否有什么我遗漏的东西,因为在 JupyterLab 中工作时我在 HackerRank 上遇到错误?