Есть ли какой-нибудь pythonic способ получить все выполняемые/ожидающие задачи сельдерея для текущего пользователя django loggedin? Псевдокод для того, что я пытаюсь:django получить все работающие/ожидающие задачи сельдерея для текущего пользователя django
@celery.task
def process_task(user, task_to_do):
#get all running or pending(queued) task for current user
user_tasks = user.get_task(status=PENDING or status=STARTED)
if not user_task:
#allow user to schedule additional task
process....
else:
return "Your previous tasks is already running"
Thats true. Позвольте мне объяснить, как я это сделал. Мое приложение также управляет статусом настраиваемых задач, поэтому я решаю, что, возможно, сохранение статуса задачи в базе данных может быть лучшим вариантом здесь. (Я создал модель под названием TaskUser) is_task_in_progress = False для задачи в TaskUser.objects.filter (user = map.owner) .exclude (status = 'SUCCESS'). Exclude (status = "FAILURE"). All (): celery_job = current_app.AsyncResult (task.task_id) , если celery_job.ready(): ... else: is_task_in_progress = True –