2012-12-11 34 views
6

पर एक रेस्क कतार कनवर्ट करना मैं एक रेज्यू कतार को साइडकीक में बदलने की कोशिश कर रहा हूं। मैंने साइडकीक के लिए पूरा सेटअप पूरा कर लिया है, और अब साइडकीक में अपनी सभी रेजिक जॉब्स जोड़ने के लिए तैयार हूं।साइडकिइक

मेरा सवाल है: क्या मैं बस सभी resque कुंजी को redis में संबंधित साइडकीक कुंजी में बदल सकता हूं?

उदाहरण के लिए, यदि मेरे पास "ट्विटर" नामक कतार है, तो रेस्क के लिए रेडिस कुंजी "रेस्क्यू: कतार: ट्विटर" है, लेकिन साइडकीक में कुंजी "कतार: ट्विटर" होगी। क्या मैं बस "रेज्यू: कतार: ट्विटर" का नाम बदल सकता हूं "कतार: ट्विटर"?

+0

+1 becoz मुझे लगता है कि 'redis' सूची में कुंजी एपीआई का नाम बदल रहा है, तो मुझे कोई फर्क नहीं पड़ता कि कोई मुझे गलत साबित कर सकता है – Viren

+0

आप अपने मौजूदा बचाव कार्यकर्ताओं को अपनी मौजूदा कतारों को क्यों नहीं छोड़ेंगे, और साइडकीक हैंडल कोई नई नौकरियां? नौकरियों को मैन्युअल रूप से आगे बढ़ाना आवश्यक नहीं होना चाहिए। –

+0

@ChrisHeald क्योंकि ऐसा करने के लिए लंबे समय तक इंतजार करना होगा। –

उत्तर

6

ठीक है अंत में यह मिल गया

कुछ वैश्विक आदेश है कि मैं याद किया और rename उनमें से एक शायद है कर रहे हैं।

आप कुंजी नाम बदल सकते हैं तुम कहाँ

इस

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

की तरह कुछ करना और देखें कि क्या वह सवाल यह सिर्फ ऊपर धकेल लिए काम

चीयर्स

धन्यवाद चाहते हैं रेडिस ज्ञान द्वारा

1

यहां कुछ कोड है जो मैं करता था साइडकीक में हमारे मौजूदा रिस्क नौकरियों पर आइग्रेट करें। आप इसे रेल कंसोल में उपयोग कर सकते हैं।

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

और यह बॉक्स से बाहर काम करेंगे। लेकिन इसके बिना मैंने तैनात किए जाने के बाद, मैंने दोनों प्रारूपों में नौकरियों को लंबित किया था, इसलिए मुझे पहले कोड का उपयोग करना पड़ा जिसे मैंने चीजों को माइग्रेट करने के लिए चिपकाया था।