o
    Df                     @   s`   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 dZ
eeZejZG dd	 d	ejZd
S )zWorker Task Consumer Bootstep.    )QoSignore_errors)	bootsteps)
get_logger   )Mingle)Tasksc                       sF   e Zd ZdZefZ fddZdd Zdd Zdd	 Z	d
d Z
  ZS )r   z,Bootstep starting the task message consumer.c                    s$   d  |_ |_t j|fi | d S )N)task_consumerqossuper__init__)selfckwargs	__class__ U/home/ubuntu/webapp/venv/lib/python3.10/site-packages/celery/worker/consumer/tasks.pyr      s   zTasks.__init__c                    s^        jj  jjd j  jjj j j	d _
 fdd}t| j _dS )zStart task consumer.r   )on_decode_errorc                    s    j j| dS )N)prefetch_countapply_global)r	   r
   )r   r   
qos_globalr   r   set_prefetch_count*   s   z'Tasks.start.<locals>.set_prefetch_countN)update_strategies
connectionqos_semantics_matches_specdefault_channel	basic_qosinitial_prefetch_countappamqpTaskConsumerr   r	   r   r
   )r   r   r   r   r   r   start   s   
zTasks.startc                 C   s$   |j rtd t||j j dS dS )zStop task consumer.zCanceling task consumer...N)r	   debugr   cancelr   r   r   r   r   stop1   s   z
Tasks.stopc                 C   s4   |j r| | td t||j j d|_ dS dS )zShutdown task consumer.zClosing consumer channel...N)r	   r'   r$   r   closer&   r   r   r   shutdown7   s   

zTasks.shutdownc                 C   s   d|j r	|j jiS diS )zReturn task consumer info.r   zN/A)r
   valuer&   r   r   r   info?   s   z
Tasks.info)__name__
__module____qualname____doc__r   requiresr   r#   r'   r)   r+   __classcell__r   r   r   r   r      s    r   N)r/   kombu.commonr   r   celeryr   celery.utils.logr   mingler   __all__r,   loggerr$   StartStopStepr   r   r   r   r   <module>   s    