इस बैश सत्र पर विचार करें:मैं एए विकल्प के बिना अजवाइन की स्थिति/फूल कैसे चला सकता हूं?
$ export DJANGO_SETTINGS_MODULE=web.settings
$ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10
Error: No nodes replied within time constraint.
$ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10 -A scaffold.tasks.celery_app
[email protected]: OK
मैं -A
विकल्प की जरूरत क्यों करते हैं? जहां तक मैं कह सकता हूं कि अजवाइन लाल रंग पर आवश्यक मेटाडेटा का पता लगाने में सक्षम होना चाहिए।
इसी तरह यह पता चलता है कि अगर मैं celery flower -b <redis url>
चलाने कि इसे सफलतापूर्वक Redis को जोड़ता है, लेकिन किसी भी असली कार्यकर्ताओं/कार्य/कतारों प्रदर्शित नहीं करता है और 'stats' inspect method failed
जैसे कई संदेश दिखाता है। फिर, -A
जोड़ना इसे काम करने का कारण बनता है।
मैं एक न्यूनतम स्टैंडअलोन डॉकर कंटेनर में फूल चलाने के लिए चाहता हूं जिसमें मेरा कोई कोड या इसकी निर्भरता न हो। this one जैसे कई प्रतिनिधि इस तरह की चीज पेश करते हैं। तो मैं यह कैसे कर सकता हूँ? लिंक्ड रेपो कई विकल्प प्रदान करता है लेकिन -A
विकल्प निर्दिष्ट करने का कोई तरीका नहीं है, जो बताता है कि यह आवश्यक नहीं है।
मैं अजवाइन के लिए शुरुआत करने वाला हूं इसलिए मुझे कुछ बेवकूफ याद आ रहा है। मुझे क्या करना चाहिए?
scaffold.tasks.celery_app
मॉड्यूल बस इस तरह दिखता है:
from celery import Celery
from django.conf import settings
app = Celery()
app.config_from_object(settings)
और इन Django सेटिंग्स कि अजवाइन को शामिल कर रहे हैं:
{'BROKER_HEARTBEAT': 0,
'BROKER_TRANSPORT_OPTIONS': {'fanout_patterns': True,
'fanout_prefix': True,
'visibility_timeout': 172800},
'BROKER_URL': 'redis://redis.businessoptics.dev:6379/1',
'CELERYBEAT_SCHEDULE': {'journey-heartbeat': {'args':(),
'schedule': <crontab: * * * * * (m/h/d/dM/MY)>,
'task': 'kms.data.journey.tasks.heartbeat'}},
'CELERYD_CONCURRENCY': 1,
'CELERYD_HIJACK_ROOT_LOGGER': False,
'CELERYD_LOG_COLOR': False,
'CELERYD_MAX_TASKS_PER_CHILD': 1,
'CELERYD_PREFETCH_MULTIPLIER': 1,
'CELERY_ACCEPT_CONTENT': ['pickle'],
'CELERY_ACKS_LATE': True,
'CELERY_DEFAULT_EXCHANGE': 'default',
'CELERY_DEFAULT_EXCHANGE_TYPE': 'direct',
'CELERY_DEFAULT_QUEUE': 'default',
'CELERY_DEFAULT_ROUTING_KEY': 'default',
'CELERY_IGNORE_RESULT': False,
'CELERY_IMPORTS': ['kms.knowledge.query.tasks2',
# names of several more modules...
],
'CELERY_QUEUES': [<unbound Queue tablestore -> <unbound Exchange default(direct)> -> kms.data.table_store.tasks.#>,
# several more similar-looking Queues...
<unbound Queue default -> <unbound Exchange default(direct)> -> default>],
'CELERY_REDIRECT_STDOUTS': False,
'CELERY_RESULT_BACKEND': 'database',
'CELERY_RESULT_DBURI': 'mysql://businessoptics:[email protected]:3306/product',
'CELERY_RESULT_DB_SHORT_LIVED_SESSIONS': True,
'CELERY_ROUTES': ['scaffold.tasks.routers.TaskNameRouter'],
'CELERY_SEND_EVENTS': True,
'CELERY_SEND_TASK_ERROR_EMAILS': False,
'CELERY_SEND_TASK_SENT_EVENT': True,
'CELERY_STORE_ERRORS_EVEN_IF_IGNORED': True,
'CELERY_TASKNAME_ROUTES': [('tablestore', 'kms.data.table_store.tasks.#'),
# bunch of routes...
],
'CELERY_TASK_RESULT_EXPIRES': None,
'CELERY_TIMEZONE': 'UTC',
'CELERY_TRACK_STARTED': True,
'CELERY_WORKER_DIRECT': True
}
यहाँ प्रासंगिक संस्करण हैं:
celery==3.1.19
Django==1.8
django-celery==3.1.0
redis==2.10.3
मेरे लिए 'फूल --पोर्ट = 5555 - ब्रोकर =' रेडिस: // ... '' पास किए बिना काम '-ए' – ahmed