Как взаимодействуют Сельдерей и брокер?

#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)

Пожалуйста, дайте мне знать, как сообщение отправляется от брокера рабочему.

Я знаю, что когда задача сохраняется в брокере, она сохраняется с помощью комбу.