gpt4 book ai didi

ruby-on-rails - 带有 Sidekiq 适配器的 ActiveJob 是否对纯 Sidekiq worker 有性能问题?

转载 作者:行者123 更新时间:2023-12-04 09:02:35 29 4
gpt4 key购买 nike

我看到this在 Sidekiq 官方 wiki 中,ActiveJob 会慢得多。
但它是在 2018 年 3 月根据此 issue 基于 Rails 4.2 和 Sidekiq 5.1.1 提到的,最新的是 Rails 6 和 Sidekiq 6。
在这种情况下,纯 Sidekiq 工作人员会比带有 Sidekiq 适配器的 ActiveJob 更受欢迎吗?

最佳答案

我准备了一个简单的基准:https://github.com/mpan-wework/sidekiq-benchmark/actions?query=workflow%3ARSpec

CreateUserJob
behaves like Benchmark Job
"CreateUserJob-0, 1601366451612"
"CreateUserJob-last, 500, 1601366532766"
runs for 501 times

PureJob
behaves like Benchmark Job
"PureJob-0, 1601366532791"
"PureJob-last, 500, 1601366542691"
runs for 501 times

CreateUserWorker
behaves like Benchmark Worker
"CreateUserWorker-0, 1601366542695"
"CreateUserWorker-last, 500, 1601366621057"
runs for 501 times

PureWorker
behaves like Benchmark Worker
"PureWorker-0, 1601366621072"
"PureWorker-last, 500, 1601366630103"
runs for 501 times

Finished in 2 minutes 58.5 seconds (files took 1.72 seconds to load)
4 examples, 0 failures
基准测试结果是在 github 操作上运行的,其中一个 postgres 容器作为数据库,一个 redis 容器作为缓存。 Pure job 或 worker 只包含内存中的命令, CreateUser job 或 worker 将通过 SQL 创建 100 个用户。 0表示要运行的第一个作业/ worker 的时间戳;当每个作业/ worker 完成时,它会将其 id 和结束时间写入缓存,因此 last代表最后一个工作/ worker 。
对于每种类型的工作/ worker ,有 501 个项目排队。
从收集到的数据来看, PureJob需要 9.900 秒,而 PureWorker需要 9.031 秒; CreateUserJob需要 81.154 秒,而 CreateUserWorker需要 78.362 秒。 Sidekiq worker 比使用 Sidekiq 适配器的 ActiveJob 快,但没有描述的那么快。
我还没有在具有多个 rails 和 sidekiq pod 的 kubernetes 集群上进行测试,但我想差异不会很大。

关于ruby-on-rails - 带有 Sidekiq 适配器的 ActiveJob 是否对纯 Sidekiq worker 有性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63533410/

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