gpt4 book ai didi

ruby-on-rails - Sidekiq与单队列并发

转载 作者:行者123 更新时间:2023-12-05 02:21:01 24 4
gpt4 key购买 nike

我有 3 个队列在运行

User
Follower
Default

用户可以导入他的数据,然后由 User 队列完成。这实际上创造了大量的追随者(高达数百万),并且他们每个人都有一个 after_create 来更新自己,在 Follower 队列中。

这里的问题是,50 个用户现在可以创建他们的导入,但我只想同时完成 1 个导入。先进先出 - 而 Follower-Queue 应该仍然与 100 个同时工作的工作人员一起工作。示例:1 个用户导入 500.000 个关注者。那么下一个用户导入500万。接下来导入 400。同时加载用户 1 的关注者。

有可能吗?

我的 YAML 看起来像这样

:queues:
- user
- follower
- default

文档现在告诉我,用户队列是高优先级的。但是如何判断此队列中只有 1 个作业同时完成?

最佳答案

此功能sidekiq 核心不支持(以及作者 does not want to add 这样的功能)。但是,有一个外部中间件似乎支持为每个队列设置工作人员限制, sidekiq-limit_fetch gem 。使用它你应该能够轻松地设置你需要的东西:

# sidekiq.yml
:limits:
user: 1
follower: 100
default: 10 # or whatever you like

虽然 gem 代码有点旧,但你的里程可能会有所不同......

关于ruby-on-rails - Sidekiq与单队列并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660760/

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