2012-12-11 13 views
6

Bir Resque kuyruğunu Sidekiq'e dönüştürmeye çalışıyorum. Sidekiq için tüm kurulumu tamamladım ve şimdi tüm resque işlerini sidekiq olanlara eklemeye hazırım.Bir Satır sırasını SideKiq'e dönüştürme

Sorum şu: Redideki tüm resque tuşlarını karşılık gelen sidekiq anahtarlarına yeniden adlandırabilir miyim?

Örneğin, "twitter" adlı bir kuyruğum varsa, reçinenin redis anahtarı "resque: queue: twitter" olur, ancak sidekiq'deki anahtar "queue: twitter" olur. "Resque: queue: twitter" ifadesini "queue: twitter" olarak değiştirebilir miyim?

+0

+1 becoz Ben 'redis' listesinde anahtar api yeniden adlandırmak yok hissediyorum Bazı biri beni yanlış kanıtlayabilir eğer ileriye bakıyorum – Viren

+0

Neden mevcut Resque çalışanlarınızın mevcut sıralarını boşaltmasına izin vermediniz ve Sidekiq işlemek için bırakın yeni işler var mı? İşlerin manuel olarak taşınması gerekli olmamalıdır. –

+0

@ChrisHeald çünkü bunu yapmak uzun bir süre beklemeyi gerektiriyordu. –

cevap

6

Tamam Nihayet

Kaçırdığım ve rename belki bunlardan biri birkaç genel komut vardır Anladın mı.

Eğer

bu

redis.rename "resque:queue:twitter","queue:twitter" 

böyle bir şey yapmak Ve Sadece yukarı fırçalanmış soru için

Teşekkür

Şerefe

işe bakın isterseniz anahtarlarını yeniden adlandırabilirsiniz Nerede redis bilgisi

1

Burada kullandığım bazı kodlar Mevcut resque işimizi sidekiq'e devretmek. Bunu ray konsolunda kullanabilirsiniz.

['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 

Ayrıca sadece ayarlayabilirsiniz:

Sidekiq.configure_server do |config| 
    config.redis = { :namespace => 'resque' } 
end 
Sidekiq.configure_client do |config| 
    config.redis = { :namespace => 'resque' } 
end 

ve kutunun dışında çalışacaktır. Ancak, bu olmadan konuşlandırdıktan sonra, her iki formatta da beklemede işlerim vardı, bu yüzden işleri aktarmak için yapıştırdığım ilk kodu kullanmak zorunda kaldım.

İlgili konular