#python #celery
#python #сельдерей
Вопрос:
Во многих сообщениях объясняется, что брокер сообщений назначает задачу в качестве рабочей.
Но мне кажется, что брокер остается на месте и выполняет задачу с помощью команды pop из Сельдерея. (по крайней мере, когда я использую redis в качестве брокера)
Даже если я проверю tcpdump, кажется, что сервер Celery запрашивает BRPOP для redis.
07:23:52.609733 IP worker1.toy_project_default.50814 > 02f82bfb5af2.6379: Flags [P.], seq 3235:3314, ack 1075, win 501, options [nop,nop,TS val 928306453 ecr 97752668], length 79: RESP "BRPOP" "celery" "celery^F^V3" "celery^F^V6" "celery^F^V9" "1"
И это синхронизируется с помощью Mingle и Gossip.
Интересно, начинается ли начало передачи сообщения задачи с запроса Сельдерея или с передачи брокера.
Отличается ли это, когда я использую RabbitMQ и redis? (…. или MongoDB)
Это не похоже на опрос…(и pub / sub)
Пожалуйста, дайте мне знать, как сообщение отправляется от брокера рабочему.
Я знаю, что когда задача сохраняется в брокере, она сохраняется с помощью комбу.