33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
# Copyright (c) 2023-present Plane Software, Inc. and contributors
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# See the LICENSE file for details.
|
|
|
|
from celery import shared_task
|
|
|
|
|
|
@shared_task(bind=True, max_retries=60)
|
|
def process_voice_task_session(self, voice_session_id):
|
|
from plane.app.views.voice_tasker import fail_voice_task_session, process_voice_task_session_pipeline
|
|
|
|
result = process_voice_task_session_pipeline(voice_session_id) or {}
|
|
if not result.get("retry"):
|
|
return result
|
|
|
|
if self.request.retries >= self.max_retries:
|
|
fail_voice_task_session(
|
|
voice_session_id,
|
|
"voice_task_queue_timeout",
|
|
"Voice Tasker session stayed in retry queue for too long.",
|
|
)
|
|
return {"ok": False, "code": "voice_task_queue_timeout"}
|
|
|
|
countdown = int(result.get("countdown") or 15)
|
|
raise self.retry(countdown=countdown, exc=Exception(result.get("code") or "voice_task_retry"))
|
|
|
|
|
|
@shared_task
|
|
def cleanup_voice_task_sessions():
|
|
from plane.app.views.voice_tasker import cleanup_voice_task_sessions as cleanup_voice_task_sessions_impl
|
|
|
|
return cleanup_voice_task_sessions_impl()
|