ruạṛ
a �u:j� � @ s� d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl m Z d dlmZ d dl mZ d dlmZ deeeeee d �d d�ZdS ) � N)�copy_context)�Callable�Optional)� map_exception)�simple_error_payload)�call_cbs_callback)�set_job_id_for_context_logging)� LogPrinter)� cbs_job_id�action_name� task_func�on_success_data�on_error_messagec s� � � d�� ��t �� D ]2}|j�krt|dd�st�d�� d�� d S q� �����fdd�}t� }t j|j|fdd�}|� � t� d |j� �� d S ) N�-�task_completedT�[z1] Task is already running. Duplicate not allowed.c s� t t��� t�� } �| _d| _t�� }t� d| j� d|� d| j� �� �zPz4�� }�|�}t� d| j� d�� t�� d|� W n� t�y| } z�t |�}��r:zZ�|�}t|t�r�|�d�p�|�d�}|r�t|�|j|�}nt|t�r�t|�|j|�}W n> t�y8 } z$t�d| j� d |� �� W Y d }~n d }~0 0 t|�} t�d| j� d | � �� t�� d| � W Y d }~n d }~0 0 W d| _t� d| j� d �� nd| _t� d| j� d �� 0 d S )NFr z] Running on PID=z | Thread=z] Task completed successfully�success�error�messagez] on_error_message failed: z] Task failed: �failedTz] Thread marked as completed)r �str� threading�current_thread�namer �os�getpidr �noter r � Exceptionr � isinstance�dict�get�type�coder r ) �thread�pid�result�data�eZbart_errZcustom�msgZhook_err�payload�r r r r r Zthread_name� �K/opt/bart/bart_venv/lib/python3.9/site-packages/app/utils/threaded_tasks.py�internal_runner s>