celery - Routing Tasks 번역

Jaeuk Ko·2023년 2월 17일
0

공식문서의 Routing tasks를 번역했습니다.

celery에서는 사용가능한 queue를 task_queues로 세팅한다.

default_exchange = Exchange('default', type='direct')
media_exchange = Exchange('media', type='direct')

app.conf.task_queues = (
    Queue('default', default_exchange, routing_key='default'),
    Queue('videos', media_exchange, routing_key='media.video'),
    Queue('images', media_exchange, routing_key='media.image')
)
app.conf.task_default_queue = 'default'
app.conf.task_default_exchange = 'default'
app.conf.task_default_routing_key = 'default'

task_default_queue는 명백한 루트가 지정되지 않은 태스크들을 라우팅할 때 쓰인다.

디폴트 exchange, exchange type, routing key는 태스크에 대한 디폴트 라우팅값과, task_queues에 들어가는 디폴트 값으로 쓰인다.

하나의 queue에 대한 여러개의 바인딩도 지원된다. 다음은 같은 queue에 대해 두개의 라우팅 키를 설정한 예시이다.

from kombu import Exchange, Queue, binding

media_exchange = Exchange('media', type='direct')

CELERY_QUEUES = (
    Queue('media', [
        binding(media_exchange, routing_key='media.video'),
        binding(media_exchange, routing_key='media.image'),
    ]),
)
profile
망원동 개발자

0개의 댓글