# 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()