ResqueのWorker毎にRedisの接続先を変更したかったので以下の拡張を作ってみました。
Redisのメモリ使用量が多く分散したい場合等で利用できます。
worker_base.rb
class WorkerBase
def self.before_enqueue(*args)
Resque.redis = @redis if @redis
end
def self.after_enqueue(*args)
Resque.redis = DEFAULT_REDIS_HOST
end
end
以下で変更が可能です。
worker.rb
require 'worker_base'
class Worker < WorkerBase
@redis = OTHER_REDIS_HOST
# ...
end