%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/aiohttp/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/aiohttp/__pycache__/worker.cpython-37.pyc

B

�Z�_V�@sdZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZyddlZejZWnek
r�dZeZYnXdZGd
d�dej �Z!Gdd�de!�Z"Gdd�de!�Z#dS)z%Async gunicorn worker for aiohttp.web�N)�	FrameType)�Any�	Awaitable�Callable�Optional�Union)�AccessLogFormat)�base)�web�)�
set_result)�Application)�AccessLogger)�GunicornWebWorker�GunicornUVLoopWebWorker�GunicornTokioWebWorkercs�eZdZejZejZe	e	dd��fdd�Z
dd��fdd�Zdd�dd	�Zdd�d
d�Z
dd�d
d�Zd eddd�dd�Zdd�dd�Zeedd�dd�Zeedd�dd�Zee	dd�dd��Zeed�dd�Z�ZS)!rN)�args�kw�returncs$t�j||�d|_d|_d|_dS)Nr)�super�__init__�_task�	exit_code�_notify_waiter)�selfrr)�	__class__��A/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/worker.pyr%szGunicornWebWorker.__init__)rcs0t����t��|_t�|j�t���dS)N)�asyncio�get_event_loop�closeZnew_event_loop�loopZset_event_loopr�init_process)r)rrrr",s
zGunicornWebWorker.init_processcCs||j�|���|_y|j�|j�Wn tk
rD|j�d�YnXtj	dkrb|j�|j�
��|j��t�|j
�dS)NzException in gunicorn worker)��)r!Zcreate_task�_runrZrun_until_complete�	Exception�logZ	exception�sys�version_infoZshutdown_asyncgensr �exitr)rrrr�run5s

zGunicornWebWorker.runc
�s�t|jt�r|j}n,t�|j�r0|��IdH}ntd�|j���|jjrP|j	j
nd}tj||j	|jj
||�|jj�d�}|��IdH|jjr�|�|j�nd}|}|dk	s�t�|j}|dk	s�t�x:|jD]0}tj||||jjddd�}|��IdHq�Wt��}y�x�|j�r�|��|j}	|jj�rL|	|jjk�rLd|_|j	�d|�nB|t��k�r�|j t�!�k�r�d|_|j	�d|�n|�"�IdH�qWWnt#k
�r�YnX|�$�IdHdS)	NzUwsgi app should be either Application or async function returning Application, got {})ZloggerZkeepalive_timeout�
access_log�access_log_format�d�_)Zssl_contextZshutdown_timeoutFzMax requests, shutting down: %sz!Parent changed, shutting down: %s)%�
isinstanceZwsgir
rZiscoroutinefunction�RuntimeError�format�cfgZ	accesslogr'r,r
Z	AppRunnerZ	keepalive�_get_valid_log_formatr-ZsetupZis_ssl�_create_ssl_context�AssertionError�serverZsocketsZSockSiteZgraceful_timeout�start�os�getpid�aliveZnotifyZrequests_countZmax_requests�infoZppid�getppid�_wait_next_notify�
BaseExceptionZcleanup)
rZappr,Zrunner�ctxr7ZsockZsite�pidZcntrrrr%BsT

zGunicornWebWorker._runzasyncio.Future[bool]cCs>|��|j}|dk	st�|��|_}|j�d|j|�|S)Ng�?)�_notify_waiter_doner!r6Z
create_futurerZ
call_later)rr!�waiterrrrr>zsz#GunicornWebWorker._wait_next_notify)rCrcCs4|dkr|j}|dk	r t|d�||jkr0d|_dS)NT)rr)rrCrrrrB�s

z%GunicornWebWorker._notify_waiter_donecCs�|j�tj|jtjd�|j�tj|jtjd�|j�tj|jtjd�|j�tj|j	tjd�|j�tj
|jtj
d�|j�tj|j
tjd�t�tjd�t�tj
d�dS)NF)r!Zadd_signal_handler�signal�SIGQUIT�handle_quit�SIGTERMZhandle_exit�SIGINT�SIGWINCHZhandle_winch�SIGUSR1Zhandle_usr1�SIGABRT�handle_abort�siginterrupt)rrrr�init_signals�szGunicornWebWorker.init_signals)�sig�framercCsd|_|j�|�|��dS)NF)r;r3Z
worker_intrB)rrOrPrrrrF�szGunicornWebWorker.handle_quitcCs&d|_d|_|j�|�t�d�dS)NFr)r;rr3Zworker_abortr(r*)rrOrPrrrrL�szGunicornWebWorker.handle_abort�
SSLContext)r3rcCs\tdkrtd��t�|j�}|�|j|j�|j|_|j	rF|�
|j	�|jrX|�|j�|S)z~Creates SSLContext instance for usage in asyncio.create_server.

        See ssl.SSLSocket.__init__ for more details.
        NzSSL is not supported.)
�sslr1rQZssl_versionZload_cert_chainZcertfileZkeyfileZ	cert_reqsZverify_modeZca_certsZload_verify_locationsZciphersZset_ciphers)r3r@rrrr5�sz%GunicornWebWorker._create_ssl_context)�
source_formatrcCs.||jkr|jSt�d|�r&td��n|SdS)Nz%\([^\)]+\)z�Gunicorn's style options in form of `%(name)s` are not supported for the log formatting. Please use aiohttp's format specification to configure access log formatting: http://docs.aiohttp.org/en/stable/logging.html#format-specification)�DEFAULT_GUNICORN_LOG_FORMAT�DEFAULT_AIOHTTP_LOG_FORMAT�re�search�
ValueError)rrSrrrr4�s
z'GunicornWebWorker._get_valid_log_format)N)�__name__�
__module__�__qualname__rZ
LOG_FORMATrU�GunicornAccessLogFormat�defaultrTrrr"r+r%r>rrBrN�intrrFrL�staticmethodr5�strr4�
__classcell__rr)rrr s	
8	 	rcs"eZdZdd��fdd�Z�ZS)rN)rcs0ddl}t����t�|���t���dS)Nr)�uvlooprrr �set_event_loop_policy�EventLoopPolicyrr")rrb)rrrr"�sz$GunicornUVLoopWebWorker.init_process)rYrZr[r"rarr)rrr�srcs"eZdZdd��fdd�Z�ZS)rN)rcs0ddl}t����t�|���t���dS)Nr)�tokiorrr rcrdrr")rre)rrrr"�sz#GunicornTokioWebWorker.init_process)rYrZr[r"rarr)rrr�sr)$�__doc__rr9rVrDr(�typesr�typingrrrrrZgunicorn.configrr\Zgunicorn.workersr	Zaiohttpr
ZhelpersrZweb_appr
Zweb_logrrRrQ�ImportError�object�__all__ZWorkerrrrrrrr�<module>s0

@

Zerion Mini Shell 1.0