这是我用来将现有的 resque 作业迁移到 sidekiq 的一些代码。您可以在 rails 控制台中使用它。
['low', 'high', 'critical'].each do |queue|
p [1, queue]
old_queue = "resque:queue:#{queue}"
new_queue = "queue:#{queue}"
# $redis.ltrim new_queue, 0, 0 # can optionally clear out new queue, in case of multiple runs
vals = $redis.lrange(old_queue, 0, -1)
p [2, queue]
$redis.pipelined do
vals.each do |val|
$redis.lpush(new_queue, val)
end
end
end
您也可以只设置:
Sidekiq.configure_server do |config|
config.redis = { :namespace => 'resque' }
end
Sidekiq.configure_client do |config|
config.redis = { :namespace => 'resque' }
end
它开箱即用。但是在我没有这个部署之后,我有两种格式的待处理作业,所以不得不使用我粘贴的第一个代码来迁移东西。