o
    /i@                     @   sn   d dl mZmZ erd dlmZ d dlmZ dZdddded	 fd
dZddddee	 fddZ
dddZdS )    )TYPE_CHECKINGOptional)Redis)
BaseWorkerzrq:suspendedN
connectionr   workerr   c                 C   sV   |   }|dur|j|d |t | d W  d   S 1 s$w   Y  dS )a.  Checks whether a Worker is suspended on a given connection
    PS: pipeline returns a list of responses
    Ref: https://github.com/andymccurdy/redis-py#pipelines

    Args:
        connection (Redis): The Redis Connection
        worker (Optional[Worker], optional): The Worker. Defaults to None.
    N)pipeline)r   	heartbeatexistsWORKERS_SUSPENDEDexecute)r   r   r    r   M/var/www/html/flask_server/venv/lib/python3.10/site-packages/rq/suspension.pyis_suspended   s   
	

$r   ttlc                 C   s(   |  td |dur| t| dS dS )z
    Suspends.
    TTL of 0 will invalidate right away.

    Args:
        connection (Redis): The Redis connection to use..
        ttl (Optional[int], optional): time to live in seconds. Defaults to `None`
       N)setr   expire)r   r   r   r   r   suspend   s   	r   c                 C   s
   |  tS )zW
    Resumes.

    Args:
        connection (Redis): The Redis connection to use..
    )deleter   )r   r   r   r   resume*   s   
r   )N)r   r   )typingr   r   redisr   	rq.workerr   r   r   intr   r   r   r   r   r   <module>   s    