o
    Pi`	                     @   s\   d dl Z d dlmZ d dlmZ d dlZd dlZd dlmZ d dlZG dd dZ	e	 Z
dS )    N)Queue)Job)datetimec                   @   s$   e Zd Zdd Zdd Zdd ZdS )AudioQueueV2c                 C   s4   t dd}t|| _td| jd| _td d S )N	REDIS_URLzredis://localhost:6379/0
audio_jobs
connectionu"   ✅ Queue initialized for RQ 2.6.1)osgetenvredisfrom_urlr   queueprint)self	redis_url r   t/home/azureuser/microlearn/backend/user_journey_with_openai/agentic_workflow/src/user_journey_service/audio_queue.py__init__
   s   zAudioQueueV2.__init__c              
   C   s   d| dt  jdd  }|||dt  d}| jd| dt	| | j
jd	||||d
ddd}td|  |d| j
j| j
jd dS )zAdd job to queueaudio__N   queued)job_idhashiddatastatuscreated	job_info:iQ zaudio_worker_v2.process_jobi  i:	 )r   job_timeout
result_ttlfailure_ttlu   ✅ Job enqueued:    )r   r   queue_positionestimated_wait)uuiduuid4hexr   now	isoformatr   setexjsondumpsr   enqueuer   count)r   r   
input_datar   job_datajobr   r   r   add_job   s,   
		
zAudioQueueV2.add_jobc              
   C   s   | j d| }|sddiS t|}z$tj|| j d}| |d< |jr+|j|d< |jr6|j|d< W |S W |S  t	yQ } zt
||d< W Y d	}~|S d	}~ww )
zGet job statusr   r   	not_foundr   	rq_statusresulterrorrq_errorN)r   getr+   loadsr   fetch
get_statusr5   exc_info	Exceptionstr)r   r   job_infoinfor1   er   r   r   r;   3   s&   

zAudioQueueV2.get_statusN)__name__
__module____qualname__r   r2   r;   r   r   r   r   r   	   s    "r   )r   rqr   rq.jobr   r+   r%   r   r
   r   audio_queuer   r   r   r   <module>   s    
B