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์์ ์ฌ๋ฌ ๋ฐ์ธ๋ฉ์ด ์๋ ๋๊ธฐ์ด์ ์ ์ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.