Celery обновляет данные в результирующем бэкенде только тогда, когда мы вызываем задачу дважды (Windows)

Я исследую celery с django, я заметил очень странную вещь, и я не смог найти никакого решения этого до сих пор.

Я использую следующую простую задачу.

@shared_task
def add(x, y):
    return x + y

Я вызываю приведенную выше задачу celery из одного из моих представлений, основанных на классе, которое выглядит следующим образом.

class CallMe(View):
    def get(self, request):
        rr = add.delay(random.randint(1, 999), random.randint(1, 999))
        return HttpResponse(f'hellllo world {rr}')

он сопоставлен со следующим url

path('', CallMe.as_view())

когда я обращаюсь к 127.0.0.1:8000, мне приходится нажимать дважды, чтобы увидеть любое обновление в журнале команды celery.

Я использую следующую команду для сельдерея

celery -A my_proj worker -l DEBUG --pool=solo

Я использую RabbitMQ в качестве брокера.

Мне нужно дважды зайти на 127.0.0.1:8000, чтобы увидеть какое-либо обновление (только при втором заходе) в журнале команд сельдерея. НО цветок сельдерея способен показать две задачи (даже журнал сельдерея показывает только одну) и он показывает успех для обеих задач с правильным результатом

ALSO django_celery_results_taskresult является только INSERTING той задачи, которая регистрируется в журнале команды celery. Другая задача даже не имеет записи в таблице django_celery_results_taskresult, хотя она отображается в цветке.

Я действительно в замешательстве, какова причина и решение?

следуя версии сельдерея

pip show celery
Name: celery
Version: 5.2.3
Summary: Distributed Task Queue.
Home-page: http://celeryproject.org
Вернуться на верх