現在ログインしているdjangoユーザーに対して実行中/保留中のセロリタスクをすべて取得する方法はありますか?私が試しているものの擬似コード: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というモデルを作成しました) TaskUser.objects.filter(user = map.owner).exclude(status = 'SUCCESS')。exclude(status = "FAILURE")のタスクの場合は is_task_in_progress = ): celery_job = current_app.AsyncResult(task.task_id) celery_job.ready()の場合: ... else: is_task_in_progress = True –