
    {i                     ~    d Z ddlZddlZddlmZmZ ddlmZmZ  ej                  e
      Z	 	 ddedededed	ef
d
Zy)u   작업 관리자 — 현재는 threading 기반, 향후 Celery/ARQ로 교체 가능.

모든 백그라운드 작업은 이 모듈을 통해 실행하여 일관된 추적/복구를 보장.
    N)CallableOptional)register_taskunregister_taskjob_keytargetargsdescriptionreturnc                      fd}t        j                  |d      }t         |      st        j	                  d        yt        j                  d |       	 |j                          y# t        $ r t                 w xY w)u   백그라운드 작업 제출. 이미 실행 중이면 False 반환.

    향후 Celery로 교체 시 이 함수만 수정하면 됨.
    c                      	    t               y # t         $ r#} t        j                  d| d       Y d } ~ 3d } ~ ww xY w# t               w xY w)NzBackground job '%s' failed: %sT)exc_info)	Exceptionloggererrorr   )excr	   r   r   s    J/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/job_manager.py_wrapperz'submit_background_job.<locals>._wrapper   sQ    	%DM G$  	XLL97CRVLWW	X G$s#    	A ;A A  A AT)r   daemonz%Job '%s' is already running, skippingFz Starting background job: %s (%s))		threadingThreadr   r   warninginfostartr   r   )r   r   r	   r
   r   threads   ```   r   submit_background_jobr      sx    % Xd;F&)>H
KK2G[I    s   A. .B)  )__doc__loggingr   typingr   r   app.core.task_registryr   r   	getLogger__name__r   strtupleboolr   r       r   <module>r)      se      % A			8	$ 	  	
 
r(   