HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/local/lib/python3.9/site-packages/kombu/__pycache__/pidbox.cpython-39.pyc
a

X>h�9�@s"dZddlmZddlZddlZddlmZmZddlm	Z	ddl
m
Z
ddlmZddl
m
Z
d	d
lmZmZmZmZd	dlmZd	dlmZmZd	d
lmZd	dlmZd	dlmZd	dlmZm Z d	dl!m"Z"d	dl#m$Z$dZ%dZ&dZ'ee(�Z)e)j*e)j+Z*Z+Gdd�d�Z,Gdd�d�Z-dS)zGeneric process mailbox.�)�annotationsN)�defaultdict�deque)�contextmanager)�copy)�count)�time�)�Consumer�Exchange�Producer�Queue)�LamportClock)�
maybe_declare�oid_from)�InconsistencyError)�
get_logger)�match)�maybe_evaluate�reprcall)�cached_property)�uuid�
z�A node named {node.hostname} is already using this process mailbox!

Maybe you forgot to shutdown the other node or did not do so properly?
Or if you meant to start multiple nodes on the same host please make sure
you give each node a unique node name!
)�Node�Mailboxc@s�eZdZdZdZdZdZdZdZddd�Z	ddd�Z
dd	�Zd
d�Zddd
�Z
ddd�Zddd�Zdd�Zdd�Zddd�ZeZdd�ZdS) rz
Mailbox node.NcCs:||_||_||_||_|jjj|_|dur0i}||_dS�N)�channel�mailbox�hostname�state�clock�adjust�adjust_clock�handlers)�selfrrrr#r�r%�6/usr/local/lib/python3.9/site-packages/kombu/pidbox.py�__init__8sz
Node.__init__TcsP�j��j�}�fdd�}||_t|p*�j|gf||durB�jjn|d�|��S)Ncs|rt�tj�d��dS)N)�node)�warnings�warn�W_PIDBOX_IN_USE�format)�name�messagesZ	consumers�r$r%r&�verify_exclusiveFsz'Node.Consumer.<locals>.verify_exclusive)�no_ack�accept)r�	get_queuerZon_declaredr
rr2)r$rr1r2�options�queuer0r%r/r&r
Cs���z
Node.ConsumercCs||j|j<|Sr)r#�__name__)r$Zfunr%r%r&�handlerQszNode.handlercCstd|dd�dS)NzCannot decode message: %rr	��exc_info)�error)r$�message�excr%r%r&�on_decode_errorUszNode.on_decode_errorcCs&|j||p|jg|jd�}|��|S)N)r�	callbacksr=)r
�handle_messager=Zconsume)r$r�callback�consumerr%r%r&�listenXs
�zNode.listenc	
Ks�|pi}tdt|d|d�||�|r*|jp.|j}z|||�}WnPtyR�Yn>ty�}z&td|dd�dt|�i}WYd}~n
d}~00|r�|j|j	|i|d|d	|d
�|S)Nz1pidbox received method %s [reply_to:%s ticket:%s]r%)�kwargszpidbox command error: %rr	r8r:�exchange�routing_key)rDrE�ticket)
�debugr�handle_call�handle_cast�
SystemExit�	Exceptionr:�repr�replyr)	r$�method�	arguments�reply_torFrC�handlerMr<r%r%r&�dispatch_s&�"�z
Node.dispatchcCs$|sin|}|j||jfi|��Sr)r#r�r$rNrOr%r%r&rQtszNode.handlecCs|�||�Sr�rQrSr%r%r&rHxszNode.handle_callcCs|�||�SrrTrSr%r%r&rI{szNode.handle_castcCs�|�d�}|�d�}|�d�}|r8|�|j�d�p4d�|j}d}|rT||vrrd}n|rn|rnt|||�rrd}nd}|r�|jfi|��SdS)N�destination�pattern�matcherr rFT)�getr"�headersrrrR)r$�bodyr;rUrVrWrZrun_dispatchr%r%r&r?~s 


zNode.handle_messagecKs"|jj|||||j|jjd�dS)N)r�
serializer)r�_publish_replyrr[)r$�datarDrErFrCr%r%r&rM�s�z
Node.reply)NNNN)NTN)NN)NNN)N)N)r6�
__module__�__qualname__�__doc__rrr#rrr'r
r7r=rBrRrQrHrIr?Zdispatch_from_messagerMr%r%r%r&r&s,�


�


rc
@s�eZdZdZeZdZdZdZdZ	dZ
dZdZdgZ
dZd0dd	�Zd
d�Zd1dd
�Zd2dd�Zd3dd�Zd4dd�Zd5dd�Zdd�Zedd��Zdd�Zed6dd��Zd7dd �Zd8d!d"�Zd9d$d%�Zd:d&d'�Zd(d)�Zd*d+�Z e!d,d-��Z"ed.d/��Z#dS);rzProcess Mailbox.z	%s.pidboxzreply.%s.pidboxN�direct�json�$@cCs�||_||_||_|dur t�n||_|�|j|j�|_|�|j�|_t	t
�|_|dur^|jn||_|durr|j
n||_
||_|	|_|
|_||_||_dSr)�	namespace�
connection�typerr �
_get_exchangerD�_get_reply_exchange�reply_exchangerr�	unclaimedr2r[�	queue_ttl�
queue_expires�reply_queue_ttl�reply_queue_expires�_producer_pool)r$rdrfrer r2r[�
producer_poolrkrlrmrnr%r%r&r'�s
zMailbox.__init__cCst|�}||_|Sr)rre)r$re�boundr%r%r&�__call__�szMailbox.__call__cCs |p
t��}|j|||||d�S)N)r)�socket�gethostname�node_cls)r$rrrr#r%r%r&r�szMailbox.Nodec	Cs$|sin|}|j|||d|||d�S)NT)rM�timeoutr@r��
_broadcast)r$rU�commandrCrvr@rr%r%r&�call�s
�zMailbox.callcCs|sin|}|j|||dd�S�NF)rMrw)r$rUryrCr%r%r&�cast�szMailbox.castcCs|sin|}|j||dd�Sr{rw)r$ryrCr%r%r&�abcast�szMailbox.abcastr	c	Cs$|sin|}|j||d||||d�S)NT)rMrv�limitr@rrw)r$ryrCrvr~r@rr%r%r&�
multi_call�s
�zMailbox.multi_callc	Cs0|j}t|�d|jj��|j|dd|j|jd�S)N�.FT)rDrE�durable�auto_delete�expires�message_ttl)�oidr
rir-rnrm)r$r�r%r%r&�get_reply_queue�s�zMailbox.get_reply_queuecCs|��Sr)r�r/r%r%r&�reply_queue�szMailbox.reply_queuecCs(t|�d|j�d�|jdd|j|jd�S)Nr�z.pidboxFT)rDr�r�r�r�)r
rdrDrlrk)r$rr%r%r&r3�s�zMailbox.get_queueccsV|r|VnF|jrD|j���}|VWd�qR1s80Ynt|dd�VdS)NF)Zauto_declare)rp�acquirer)r$�producerrr%r%r&�producer_or_acquires&zMailbox.producer_or_acquirec		Ks�|p
|jj}t|dddd�}|�||��T}z0|j|f|||g||j��d�dd�|��WntylYn0Wd�n1s�0YdS)Nra�	transientF)Z
exchange_type�
delivery_moder�)rFr T)rDrE�declarerY�retry)re�default_channelrr��publishr �forwardr)	r$rMrDrErFrr��opts�chanr%r%r&r\
s(��
���
zMailbox._publish_replyc	Cs�||||	|
d�}|p|jj}|j}
|rNt|�|��|j||jj|jd�d�|pV|j	}|�
||��D}|j||
j|
g|j�
�|r�t�|ndd�|dd�Wd�n1s�0YdS)N)rNrOrUrVrW)rDrE)rFrPr)r r�T)rDr�rYr[r�)rer�rDrr��updaterir-r�r[r�r�r r�r)r$rfrOrU�reply_ticketrrvr[r�rVrWr;r�rDr%r%r&�_publish s0���

��zMailbox._publishFcCs�|dur(t|ttf�s(td�t|����|
durdt|
t�sd|durdt|t�sdtd�t|
�t|����|pji}|rvt�pxd}|p�|jj	}
|dur�|r�|r�t
|�p�d}|	p�|j}	|j|||||
||	|
|d�	|r�|j
|||||
d�SdS)Nz'destination must be a list/tuple not {}z.pattern and matcher must be strings not {}, {})rUr�rrvr[rVrW)r~rvr@r)�
isinstance�list�tuple�
ValueErrorr,rf�strrrer��lenr[r��_collect)r$ryrOrUrMrvr~r@rr[rVrWr�r�r%r%r&rx8sL�������

��zMailbox._broadcastc
s$|dur|j}|p|jj}|j}t||g|dd�}	g�|j�|jj�z����WSt	ybYn0�����fdd�}
|	�
|
�z�|	�h|r�t|�p�t�D]2}z|jj
|d�Wq�tjy�Yq�Yq�0q��Wd�W|�|j�S1�s�0YW|�|j�n|�|j�0dS)NT)r2r1csn|jj}�|d�pd�|d�}|r2t�|kr2dS|d��}|�kr\�rP�|���|�n�|�|�dS)Nr rr�rF)rYrXr�append)rZr;�headerr�Zthis_id�r"r@�	responsesrFrjr%r&�
on_messageps
z$Mailbox._collect.<locals>.on_message)rv)r2rer�r�r
rjr r!�pop�KeyErrorZregister_callback�rangerZdrain_eventsrsrvZafter_reply_message_receivedr-)r$rFr~rvr@rr2r�r5rAr��ir%r�r&r�_s2
�zMailbox._collectcCst|j||ddd�S)NFr��rfr�r�)r�exchange_fmt)r$rdrfr%r%r&rg�s

�zMailbox._get_exchangecCst|j|dddd�S)NraFr�r�)r�reply_exchange_fmt)r$rdr%r%r&rh�s

�zMailbox._get_reply_exchangecCst|�Sr)rr/r%r%r&r��szMailbox.oidcCs
t|j�Sr)rror/r%r%r&rp�szMailbox.producer_pool)
raNNNNNNNNrc)NNNN)NNNN)N)N)Nr	NNN)NN)NN)NNNNNNNN)
NNFr	NNNNNN)Nr	NNN)$r6r^r_r`rrur�r�rdrerfrDrir2r[r'rrrzr|r}rr�rr�r3rr�r\r�rxr�rgrh�propertyr�rpr%r%r%r&r�sh�

�


�



�
�
�
(�
,
r).r`�
__future__rrsr)�collectionsrr�
contextlibrr�	itertoolsrr�r
rrr
Zclocksr�commonrr�
exceptionsr�logrrWrZutils.functionalrrZ
utils.objectsrZ
utils.uuidrZREPLY_QUEUE_EXPIRESr+�__all__r6�loggerrGr:rrr%r%r%r&�<module>s0r