File: //usr/local/lib/python3.9/site-packages/celery/contrib/testing/__pycache__/worker.cpython-39.pyc
a
X>h1 � @ s` d Z ddlZddlZddlZddlmZ ddlmZmZm Z m
Z
ddlZddlm
Z
mZ ddlmZmZ ddlmZ ddlmZ ej�d d
�Zedi d�Zed
ddhd�Zeddhd�ZG dd� dej�Zeddeddddfdd��Zeddededdfe
ee e
e ef e e ee!e"eej d� dd��Z#eddedfdd��Z$e
e
e ef e dd�dd �Z%dS )!z'Embedded workers for integration tests.� N)�contextmanager)�Any�Iterable�Optional�Union)�Celery�worker)�_set_task_join_will_block�allow_join_result)�Signal)�
anon_nodename�WORKER_LOGLEVEL�error�test_worker_starting)�nameZproviding_args�test_worker_startedr �consumer�test_worker_stoppedc sX e Zd ZdZdZdZ� fdd�ZG dd� dejj �Z � fdd �Z
d
d� Zdd
� Z� Z
S )�TestWorkControllerz3Worker that can synchronize on being fully started.FNc s� t �� | _t� j|i |�� | jj�d�d dkr�ddlm } |� | _
t�� | _
zddlm} |�� W n tyz Y n0 tj�| j
t�� �| _| j�� d S )N�.���Zpreforkr )�Queue)�pickling_support)� threading�Event�_on_started�super�__init__�pool_cls�
__module__�splitZbilliardr �logger_queue�os�getpid�pidZtblibr �install�ImportError�logging�handlers�
QueueListener� getLoggerZqueue_listener�start)�self�args�kwargsr r �� __class__� �G/usr/local/lib/python3.9/site-packages/celery/contrib/testing/worker.pyr '