셀프가 작업 이름을 기반으로 작업을 라우팅하려고합니다 ... 기본적으로 'worker.some_name'및 'web.some_name'이라는 작업이 있습니다. ', 나는 worker와 web이라는 두 개의 큐를 사용한다. 모든 작업자 작업을 작업자 큐로 보내고 그 반대의 경우도 마찬가지입니다. 현재이 같은 큰 CELERY_ROUTES 사전이 있습니다CELERY_ROUTES - 작업 이름을 기준으로 경로를 지정하는 방법
CELERY_ROUTES = {
"web.some_name": {
"queue": "web"
},
"web.some_other_name": {
"queue": "web"
},
etc.... }
을하지만 같은 더 일반적인 뭔가 싶습니다
CELERY_ROUTES = (MyRouter(),)
class MyRouter(object):
def route_for_task(self, task, args=None, kwargs=None):
if task.split('.')[0] == "worker":
return {"queue": "worker"}
return {"queue": "web"}
을하지만이 작동하지 않습니다. 어떤 아이디어? 감사.
그 링크, 댄 언급 한 모든 정보와 heres는 좋은 소스 죽었을 사용하여 작업을 할 수
: http://celery.readthedocs.org/ en/latest/userguide/routing.html # amqp-primer – Tendrid
메시지 브로커처럼 redis와 함께 작동합니까? http://icleery.readthedocs.org/en/latest/userguide/routing.html#manual-routing에서 와일드 카드를 사용하는 수동 라우팅 예와 함께 작동시키지 못했습니다. – odedfos