celery -A proj report
في الإصدار.master
.software -> celery:3.1.0 (Cipater) kombu:3.0.37 py:2.7.10
billiard:3.3.0.23 py-amqp:1.4.9
platform -> system:Darwin arch:64bit imp:CPython
loader -> celery.loaders.default.Loader
settings -> transport:amqp results:redis://localhost:6379/0
CELERY_QUEUES:
(<unbound Queue Test_Queue -> <unbound Exchange test_exchange(topic)> -> myapp.tasks.some_tasks.#>,
<unbound Queue Test_Queue -> <unbound Exchange test_exchange(topic)> -> myapp.tasks.more_tasks.#>)
RABBITMQ_MANAGEMENT_URL: 'localhost:15672'
CELERY_IMPORTS:
('myapp.tasks.some_tasks', 'myapp.tasks.more_tasks')
CELERY_ROUTES:
(<myapp.routers.DefaultRouter object at 0x1077952d0>,)
BROKER_URL: 'amqp://guest:********<strong i="13">@localhost</strong>:5672//'
CELERY_RESULT_BACKEND: 'redis://localhost:6379/0'
CELERY_QUEUES = (
Queue("Test_Queue", default_exchange, routing_key="myapp.tasks.some_tasks.#"),
Queue("Test_Queue", default_exchange, routing_key="myapp.tasks.more_tasks.#"),
)
myapp.tasks.some_tasks.#
celery amqp
queue.bind Test_Queue test_exchange Key1
queue.bind Test_Queue test_exchange Key2
CELERY_QUEUES هو تعيين من queue_name إلى queue ، لذلك بما أنك تحدد قائمتين
بنفس الاسم ، سيتم استخدام واحد منهم فقط.
لتحديد قائمة انتظار ذات روابط متعددة في Kombu ، يجب عليك استخدام:
from kombu import Exchange, Queue, binding
default_exchange = Exchange('default', type='direct')
CELERY_QUEUES = (
Queue('Test_Queue', [
binding(default_exchange, routing_key='myapp.tasks.some_tasks.#'),
binding(default_exchange, routing_key='myapp.tasks.more_tasks.#'),
]),
)
رائعة! اختبرته للتو وتم إنشاء كلا الارتباطين. هل هذا يستحق الإضافة إلى مستندات التوجيه؟ يمكنني إنشاء طلب سحب في وقت ما الليلة أو غدًا
بالتأكيد! ستكون فكرة رائعة أن تكون موجودة في المستندات :)
التعليق الأكثر فائدة
CELERY_QUEUES هو تعيين من queue_name إلى queue ، لذلك بما أنك تحدد قائمتين
بنفس الاسم ، سيتم استخدام واحد منهم فقط.
لتحديد قائمة انتظار ذات روابط متعددة في Kombu ، يجب عليك استخدام: