Django - Ловите момент, когда Celery завершает выполнение задачи

Я выполняю несколько задач Celery и пытаюсь получить четкое представление о том, когда задача Celery была завершена, успешно или неудачно. Я создал Backlog модель:

class Backlog(models.Model):
    """ Class designed to create backlogs. """
    name = models.CharField(max_length=255, blank=True, null=True)
    description = models.TextField(blank=True, null=True)
    #Status
    time = models.DateTimeField(blank=True, null=True)
    has_succeeded = models.BooleanField(default=False)

Я создал Test task в tasks.py, чтобы посмотреть, смогу ли я получить результат:

@shared_task(name='Test task', bind=True)
def test_task(self):
    task_id = self.request.id
    result = test_task.AsyncResult(task_id)
    print('Task started with id:', task_id)
    add(2, 2)
    print(result.state)
    if result.state == 'SUCCESS':
        print('Task completed successfully')
        response = {
            'state': result.state,
            'status': str(result.info),
            'date': result.date_done,
        }
        Backlog.objects.create(name=f'Success in task {task_id}', description=str(result.info), time=result.date_done,
                               has_succeeded=True)
    elif result.state == 'FAILURE':
        print('Task is still running or failed with status:', result.state)
        response = {
            'state': result.state,
            'status': str(result.info),
            'date': result.date_done,
        }

        Backlog.objects.create(name=f'Error in task {task_id}', description=str(result.info), time=result.date_done,
                               has_succeeded=False)

И я просто тестирую с помощью простой функции:

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

Я получаю следующий отслеживание в рабочем:

[2023-02-01 18:47:02,580: WARNING/ForkPoolWorker-6] Task is still running or failed with status:
[2023-02-01 18:47:02,582: WARNING/ForkPoolWorker-6]  
[2023-02-01 18:47:02,582: WARNING/ForkPoolWorker-6] STARTED
[2023-02-01 18:47:02,585: INFO/ForkPoolWorker-6] Task Test task[06f71596-3082-4012-8ea8-05a22d57ca89] succeeded in 0.0534969580003235s: None

Мне не удается поймать точный момент, когда состояние становится SUCCESS, поскольку я получаю только состояние STARTED. Что я упускаю?

Вернуться на верх