강의

멘토링

커뮤니티

Inflearn Community Q&A

singi07190574's profile image
singi07190574

asked

Celery with a Silicon Valley Engineer

Handling Task Callbacks and Errors

celery 에서 task 작업 끝난 후 ack 받기

Written on

·

356

1

안녕하세요. celery 수업 잘 듣고 있습니다.

제가 수업 내용을 활용 하여 test 코드를 작성 중입니다.

구조는 publisher(kombu), broker(redis), consumer(celery) 구성하고 있습니다.

질문은 celery 에 task가 작업이 끝난 후 결과를 broker 알리면 publisher 가 ack 를 받아 처리하는 구조가 가능 할까요?

djangocelerydjango-celerydjango-celery-beat

Answer 2

0

singi07190574님의 프로필 이미지
singi07190574
Questioner

Publisher -> Broker -> Celery -> Broker -> Publisher

구조가 가능 한지에 대한 질문이 였습니다.

publisher 가 celery 에게 일을 시키면 일이 끝날 때까지 publisher 가 대기 하고 있다가 celery가 일이 끝나면 그 결과를 publisher가 받는 구조를 말씀 드렸습니다.

altoformula님의 프로필 이미지
altoformula
Instructor

안녕하세요 김홍근님,

퍼블리셔는 말그대로 이벤트를 만드는 역할입니다. 퍼블리셔가 다시 이벤트를 받는다는 말은 데이터베이스에서 결과 레코드를 확인한다는 식은 생각으로 읽혀지는데 그러려면 퍼블리셔가 주기적으로 상태를 확인해야할 듯합니다 ㅎㅎ

singi07190574님의 프로필 이미지
singi07190574
Questioner

그렇다면 해당 작업에 대한 정보를 브로커(redis)에 볼수 있는 방법이 있나요??

 

altoformula님의 프로필 이미지
altoformula
Instructor

플라워에서 작업내용을 브로커에서 뽑아오니 잘 살펴보시면 가능도 할 듯합니다

0

altoformula님의 프로필 이미지
altoformula
Instructor

안녕하세요 김홍근님,

좀 이해가 안되는데요, 보통 Celery가 Consumer인데 그 결과는 데이터베이스나 Redis에 저장됩니다. Publisher는 이러한 Celery에게 일을 시키는 역할이라 약간 반대가 되었는데요?

순차적인 Flow가 Publisher -> Broker -> Celery -> DB/Broker가 될거 같습니다만.. 제가 질문을 잘못 이해했다면 말씀해 주세요.

Publisher -> Broker -> Celery -> Broker -> Celery도 가능은 합니다만...

감사합니다.

singi07190574's profile image
singi07190574

asked

Ask a question