gpt4 book ai didi

ruby - 如何对 Resque 执行方法或 Resque Job 类进行基准测试?

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:39 25 4
gpt4 key购买 nike

我正在使用 Resque、Resque-Status 和 Resque-Retry 来处理 bkg 作业。以下是一个示例作业。它针对 4-5 个模型执行查询。现在我想尝试使用 Sidekiq它以其超过 Resque 的速度而自豪。

但在此之前,我想在我的 Rails 应用程序中对我的后续工作进行基准测试,以便稍后验证哪个表现最好。

class BkgJob < Resque::JobWithStatus
extend Resque::Plugins::Retry
@retry_limit = 3
@retry_delay = 60

@queue = :critical

def perform
worker_id, station_id, ids = options['worker_id'], options['station_id'], options['ids']
human_worker = Worker.find(human_worker_id)
station = Station.find(station_id)
.....
.....
end
end

那么,问题是如何对上述作业类或执行方法进行基准测试?我真的是基准测试的新手。

最佳答案

您在后台运行的作业的性能与 Resque 或 Sidekiq 几乎相同。但是,与 Resque 相比,Sidekiq 从队列中选择作业的速度要快得多,而且内存效率要高得多。

后台作业的基准测试仍然是一个好主意,但我认为您应该只对执行方法本身进行基准测试,而不是排队和执行作业的整个过程。您可以这样做(一个 RSpec 示例):

require 'benchmark'

describe 'performance' do
it 'takes time' do
options = {'worker_id': 123, 'station_id': 456, 'ids': [1,2,3]}
puts Benchmark.realtime do
100.times { BkgJob.new(options).perform }
end
end
end

关于ruby - 如何对 Resque 执行方法或 Resque Job 类进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515569/

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