o
    "i                     @   sR   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ dede	de
fd	d
ZdS )    N)Session)SFTTask)DPOTask)TrainingManagerdbtask_id	task_typec              
      s   t | }	 z<|dkr| ttj|k }n| ttj|k }|||I dH  |r6|jdv r9W dS t	
dI dH  W n$ tyf } ztd| d|  t	
dI dH  W Y d}~nd}~ww q)	z'Background task to sync training statusTsftN)	completedfailed	cancelled   zError syncing task z: 
   )r   queryr   filteridfirstr   update_task_statusstatusasynciosleep	Exceptionprint)r   r   r   managertaske r   L/lsinfo/ai/hellotax_ai/training_center/backend/app/services/training_sync.pysync_training_status   s"   r   )r   sqlalchemy.ormr   app.models.sft_taskr   app.models.dpo_taskr   app.services.training_managerr   intstrr   r   r   r   r   <module>   s    