2014-10-29 6 views
8

की वजह से अच्छी तरह से संचालित नहीं हुआ है मुझे rabbitmq-server पर अजवाइन निष्पादित करने में समस्या है। मैंने a link खोजा और पाया, लेकिन यह मेरी मदद नहीं करता है। मेरा एनवी उबंटू 14.04, पायथन 2.7.6, अजवाइन 3.1.15, Django 1.7 है। a link का संदर्भ, मैंने स्थानीय रूप से rabbitmq-server स्थापित किया। मैंने उपयोगकर्ता जोड़ा, rabbitmq-server में vhost और अनुमति सेट करें।सेलरी 104

$ sudo rabbitmqctl add_user tonyg password 
$ sudo rabbitmqctl add_vhost vir_host 
$ sudo rabbitmqctl set_permissions -p vir_host tonyg ".*" ".*" ".*" 

डीजेंगो में मेरी अजवाइन की सेटिंग निम्नानुसार है।

BROKER_URL = 'amqp://tonyg:[email protected]:5672//vir_host' 
CELERY_RESULT_BACKEND = 'amqp://tonyg:[email protected]:5672//vir_host' 
CELERY_ACCEPT_CONTENT = [u'application/x-python-serialize', u'image/jpeg', u'image/bmp', u'image/png', u'image/tiff'] 
CELERY_TIMEZONE = 'Asia/Tokyo' 
CELERY_ENABLE_UTC = True 
CELERY_IGNORE_RESULT = False 

मैं डिफ़ॉल्ट कॉन्फ़िगरेशन के अलावा rabbitmq-server के बारे में कुछ भी सेट नहीं करता हूं।

मैंने इस तरह से अजवाइन को निष्पादित किया।

$ celery -A MyProj worker -l info 

-------------- [email protected] v3.1.15 (Cipater) 
---- **** ----- 
--- * *** * -- Linux-3.13.0-36-generic-x86_64-with-Ubuntu-14.04-trusty 
-- * - **** --- 
- ** ---------- [config] 
- ** ---------- .> app:   MyProj:0x7f7453328b10 
- ** ---------- .> transport: amqp://tonyg:**@localhost:5672//vir_host 
- ** ---------- .> results:  amqp://tonyg:[email protected]:5672//vir_host 
- *** --- * --- .> concurrency: 1 (prefork) 
-- ******* ---- 
--- ***** ----- [queues] 
-------------- .> celery   exchange=celery(direct) key=celery 


[tasks] 
    . MyProj.tasks. ...... 
    . MyProj.tasks. ...... 

[2014-10-29 15:07:50,241: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer. 
Trying again in 2.00 seconds... 

[2014-10-29 15:07:55,251: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer. 
Trying again in 4.00 seconds... 

जब मैं डिफ़ॉल्ट अतिथि पहचानकर्ता का उपयोग करके अजवाइन निर्धारित करते हैं,

BROKER_URL = 'amqp://guest:[email protected]:5672//' 
CELERY_RESULT_BACKEND = 'amqp://guest:[email protected]:5672//' 

यह अच्छी तरह से काम करता है। मुझे नहीं पता क्यों। क्या कोई मेरी मदद कर सकता है? धन्यवाद।

उत्तर

15

रन rabbitmqctl list_vhosts। उत्पादन होगा:

Listing vhosts ... 
/
vir_host 
...done. 

इस प्रकार यूआरएल हो गया है:

amqp://tonyg:**@localhost:5672/vir_host 
+0

यूआरएल सही है। लेकिन वर्चुअल होस्ट के माध्यम से कनेक्ट करने के लिए उपयोगकर्ता के पास व्यवस्थापकीय विशेषाधिकार नहीं हैं। – ChillarAnand

+0

@ क्रिज़िट्टोफ स्ज़ुलरज़ आपको बहुत बहुत धन्यवाद। मैंने सोचा कि मैंने कोशिश की है amqp: // tonyg: ** @ localhost: 5672/vir_host। लेकिन, मैंने फिर कोशिश की। यह वास्तव में कारगर है!!! मैंने मूर्खतापूर्ण गलती की। लेकिन, मैं जानना चाहता हूं कि क्यों सेटिंग (amqp: // tonyg: ** @ localhost: 5672/vir_host) मैक ओएस एक्स में अच्छी तरह से काम करता है। वैसे भी, आपको बहुत धन्यवाद। – BlueFrog

+0

मुझे सवाल नहीं मिला है। 'amqp: // tonyg: ** @ localhost: 5672/vir_host' अच्छी तरह से चल रहा है क्योंकि यह आपके द्वारा बनाए गए vhost के लिए एक वैध यूआरएल है। दो स्लेश वाले एक वैध नहीं है, जब तक कि vhost को '/ vir_host' कहा जाता है जो मामला नहीं है। –

3

@Krzysztof Szularz जवाब देने के लिए धन्यवाद। आपका यूआरएल बदल जाता है गलत है। यह

BROKER_URL = 'amqp://tonyg:[email protected]:5672/vir_host' 

अब आप स्थानीयहोस्ट के माध्यम से जुड़ रहे हैं और यह ठीक काम करता है। अगर आप दूरस्थ रूप से कनेक्ट करना चाहते हैं, तो यह काम नहीं करेगा। आपका खाता केवल एक अतिथि खाता है और इसमें व्यवस्थापकीय विशेषाधिकार नहीं हैं। तो उपयोगकर्ता को केवल locahost के माध्यम से कनेक्ट करना है। यदि आप उस उपयोगकर्ता को एक वायरल होस्ट से एक्सेस करना चाहते हैं, तो आपको ऐसा करने के लिए उसे विशेषाधिकार देना होगा।

उपयोगकर्ता व्यवस्थापक विशेषाधिकार देने के लिए इस आदेश को चलाएं।

rabbitmqctl set_user_tags tonyg administrator 

आप more about this here पढ़ सकते हैं।

+0

बाहर निकलता है कि आप गलत हैं। ;) –

+0

@ KrzysztofSzularz भूल गया कि वह केवल स्थानीयहोस्ट के माध्यम से कनेक्ट हो रहा है। – ChillarAnand

+0

आपके उत्तर के लिए धन्यवाद :) – BlueFrog

संबंधित मुद्दे