Yohohohohohooho | Sanrei Aya
Sanrei Aya


Server : LiteSpeed
System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : elvh3918 ( 1528)
PHP Version : 8.2.31
Disable Function : mail
Directory :  /usr/local/lib/python3.9/site-packages/celery/worker/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib/python3.9/site-packages/celery/worker/__pycache__/control.cpython-39.pyc
a

��Sh�M�@sdZddlZddlZddlmZmZmZddlmZddl	m
Z
ddlmZddl
mZddl
mZdd	lmZdd
lmZddlmZmZddlmZd
dlmZd
dlmZdZdZ ee!�Z"edgd��Z#dd�Z$dd�Z%Gdd�de�Z&dd�Z'dd�Z(e(�dd��Z)e(d d!d"efgd#�d�d%d&��Z*d'd(�Z+e(d)d*d+�d,d-��Z,ej-j.fd.d/�Z/ej0j1ej2j1fd0d1�Z3e'd2d*d+�d�d3d4��Z4e'd5d6d+�d�d7d8��Z5d�d9d:�Z6e'd2d;e7fgd<d=�d>d?��Z8e'd@e7fdAe7fgdBdC�dDdA��Z9e'd@e7fdEe:fdFe:fgdGdC�d�dHdI��Z;e(�dJdK��Z<e'�d�dLdM��Z=e'�dNdO��Z>e'�dPdQ��Z?e'�dRdS��Z@e(d$dT�d�dUdV��ZAe(dWdX�dYdZ��ZBe(�d[d\��ZCe(d]d^�d_d`��ZDdadb�ZEe(dcd^�ddde��ZFe(dfd^�d�dgdh��ZGe(did^�djdk��ZHe(dldmdndo�d�dpdq��ZIe(drdse7fdteJfdueJfgdvdw�d�d{d|��ZKe(�d}d~��ZLe(deJfgd�dC�d�d�d���ZMe'd�eJfgd�dC�d�d�d���ZNe'd�eJfgd�dC�d�d�d���ZOe'�d�d�d���ZPe'd�eJfd�eJfgd�dC�d�d�d���ZQe'�d�d�d���ZRe'd�e7fd�e7fd�e7fd�e7fgd�dC�d�d�d���ZSe'd�e7fgd�dC�d�d���ZTe(�d�d���ZUdS)�z.Worker remote control command implementations.�N)�UserDict�defaultdict�
namedtuple)�TERM_SIGNAME)�	safe_repr)�WorkerShutdown)�EX_OK)�signals)�
maybe_list)�
get_logger)�jsonify�	strtobool)�rate���state)�Request)�Panel)�exchange�routing_key�
rate_limit�controller_info_t)�alias�type�visible�default_timeout�help�	signature�args�variadiccCsd|iS)N�ok���valuer!r!�?/usr/local/lib/python3.9/site-packages/celery/worker/control.pyr sr cCsd|iS)N�errorr!r"r!r!r$�nok#sr&c
@s2eZdZdZiZiZedd��Zed
dd	��ZdS)rz+Global registry of remote control commands.cOs(|r|jfi|��|�S|jfi|��S�N)�	_register)�clsr�kwargsr!r!r$�register-szPanel.registerN�controlT��?c

s"����������	f
dd�}
|
S)Nc	s^�p|j}�p$|jpd���d�d}|�j|<t���	�|�����j|<�rZ|�j�<|S)N��
r)�__name__�__doc__�strip�split�datar�meta)ZfunZcontrol_nameZ_help�
rrr)rr�namerrrrr!r$�_inner8s

�

zPanel._register.<locals>._innerr!)r)r7rrrrrrrrr8r!r6r$r(3s
zPanel._register)	NNr,Tr-NNNN)	r0�
__module__�__qualname__r1r4r5�classmethodr+r(r!r!r!r$r's
�rcKstjfddi|��S)Nrr,�rr+�r*r!r!r$�control_commandEsr>cKstjfddi|��S)Nr�inspectr<r=r!r!r$�inspect_commandIsr@cCst|j���S)z6Information about Celery installation for bug reports.)r �appZ	bugreportrr!r!r$�reportOsrBZ	dump_confz[include_defaults=False]�
with_defaults)rrrFcKst|jjj|d�ttd�S)zList configuration.)rC)Z	keyfilterZunknown_type_filter)rrA�conf�table�_wanted_config_keyr)rrCr*r!r!r$rDUs�rDcCst|t�o|�d�S)N�__)�
isinstance�str�
startswith)�keyr!r!r$rFasrF�idsz[id1 [id2 [... [idN]]]])rrcKsdd�tt|��D�S)z!Query for task information by id.cSs i|]}|jt|�|��f�qSr!)�id�_state_of_task�info)�.0�reqr!r!r$�
<dictcomp>ms�zquery_task.<locals>.<dictcomp>)�_find_requests_by_idr
)rrLr*r!r!r$�
query_taskgs
�rTc	cs0|D]&}z||�VWqty(Yq0qdSr')�KeyError)rL�get_request�task_idr!r!r$rSss
rScCs||�rdS||�rdSdS)N�active�reserved�readyr!)�request�	is_active�is_reservedr!r!r$rN|s
rNrWcKsRtt|�pg�d}}t||||fi|��}t|t�rBd|vrB|Std|�d��S)z�Revoke task by task id (or list of ids).

    Keyword Arguments:
        terminate (bool): Also terminate the process if the task is active.
        signal (str): Name of signal to use for terminate (e.g., ``KILL``).
    Nr ztasks z flagged as revoked)�setr
�_revokerH�dictr )rrW�	terminate�signalr*�task_idsr!r!r$�revoke�s
rd�headersz/[key1=value1 [key2=value2 [... [keyN=valueN]]]]cKs.t�|p
t�}t|t�r&dd�|D�}|��D]2\}}ttj�	|�pFg�tt|��}|tj|<q.|svt
d|�d��Sttj�}	tt
�}
|	D]z}t|d�r�|jr�|��D]\\}}
||jvr�t|
�}
t|j|�}t
|�t
|
�@}|r�|
|�|�|j|jj|d�q�q�|
�st
d|�d��St
d|
�d��S)	a�Revoke task by header (or list of headers).

    Keyword Arguments:
        headers(dictionary): Dictionary that contains stamping scheme name as keys and stamps as values.
                             If headers is a list, it will be converted to a dictionary.
        terminate (bool): Also terminate the process if the task is active.
        signal (str): Name of signal to use for terminate (e.g., ``KILL``).
    Sample headers input:
        {'mtask_id': [id1, id2, id3]}
    cSs&i|]}|�d�d|�d�d�qS)�=rr)r3)rP�hr!r!r$rR��z-revoke_by_stamped_headers.<locals>.<dictcomp>zheaders z' flagged as revoked, but not terminated�stamps�rbz were not terminatedz revoked)�_signals�signumrrH�list�itemsr
�worker_stateZrevoked_stamps�getr �active_requestsrr^�hasattrri�updatera�consumer�pool)rrerarbr*rl�headerriZupdated_stampsrqZ#terminated_scheme_to_stamps_mappingrQZexpected_header_keyZexpected_header_valueZ
actual_headerZmatching_stamps_for_requestr!r!r$�revoke_by_stamped_headers�s.
 

rwc
Ks�t|�}t�}tj�|�|r�t�|p(t�}t|�D]L}|j	|vr4|�
|j	�t�d|j	|�|j
|jj|d�t|�|kr4q�q4|s�td�Std�d�|���Sd�|�}	t�d|	�|S)NzTerminating %s (%s)rjzterminate: tasks unknownz
terminate: {}z, zTasks flagged as revoked: %s)�lenr^ro�revokedrsrkrlrrSrM�add�loggerrOrartrur �format�join)
rrcrarbr*�sizeZ
terminatedrlr[Zidstrr!r!r$r_�s$

r_rbz <signal> [id1 [id2 [... [idN]]]])rrrcKst||d|d�S)z+Terminate task by task id (or list of ids).T)rarb)rd)rrbrWr*r!r!r$ra�sra�	task_namerz0<task_name> <rate_limit (e.g., 5/s | 5/m | 5/h)>)rrc
Ks�zt|�Wn2ty>}ztd|���WYd}~Sd}~00z||jj|_Wn*ty|tjd|dd�td�YS0|j	�
�|s�t�d|�td�St�d	||�td
�S)z�Tell worker(s) to modify the rate limit for a task by type.

    See Also:
        :attr:`celery.app.task.Task.rate_limit`.

    Arguments:
        task_name (str): Type of task to set rate limit for.
        rate_limit (int, str): New rate limit.
    zInvalid rate limit string: Nz&Rate limit attempt for unknown task %sT��exc_info�unknown taskz)Rate limits disabled for tasks of type %sz rate limit disabled successfullyz(New rate limit for tasks of type %s: %s.znew rate limit set successfully)
r�
ValueErrorr&rA�tasksrrUr{r%rtZreset_rate_limitsrOr )rrrr*�excr!r!r$r�s&$�
��soft�hardz#<task_name> <soft_secs> [hard_secs]cKs`z|jj|}Wn*ty:tjd|dd�td�YS0||_||_t�d|||�t	d�S)z�Tell worker(s) to modify the time limit for task by type.

    Arguments:
        task_name (str): Name of task to change.
        hard (float): Hard time limit.
        soft (float): Soft time limit.
    z-Change time limit attempt for unknown task %sTr�r�z5New time limits for tasks of type %s: soft=%s hard=%sztime limits set successfully)
rAr�rUr{r%r&Zsoft_time_limit�
time_limitrOr )rrr�r�r*�taskr!r!r$r� s��r�cKsd|jjjiS)z Get current logical clock value.�clock)rAr�r#�rr*r!r!r$r�>sr�cKs|jjr|jj�|||�dS)z�Hold election.

    Arguments:
        id (str): Unique election id.
        topic (str): Election topic.
        action (str): Action to take for elected actor.
    N)rtZgossip�election)rrMZtopic�actionr*r!r!r$r�Ds	r�cCs>|jj}|jr6d|jvr6|j�d�t�d�td�Std�S)z+Tell worker(s) to send task-related events.r�z)Events of group {task} enabled by remote.ztask events enabledztask events already enabled)rt�event_dispatcher�groupsrzr{rOr �r�
dispatcherr!r!r$�
enable_eventsQs
r�cCs8|jj}d|jvr0|j�d�t�d�td�Std�S)z3Tell worker(s) to stop sending task-related events.r�z*Events of group {task} disabled by remote.ztask events disabledztask events already disabled)rtr�r��discardr{rOr r�r!r!r$�disable_events\s

r�cCs,t�d�|jj}|jddditj��dS)z3Tell worker(s) to send event heartbeat immediately.zHeartbeat requested by remote.�worker-heartbeat�freq�N)r�)r{�debugrtr��sendroZ
SOFTWARE_INFOr�r!r!r$�	heartbeatgs
r�)rcKsJ||jkrFt�d|�|r&tj�|�tj��tjj|jj	�
�d�SdS)zRequest mingle sync-data.zsync with %s)ryr�N)�hostnamer{rOroryrs�purge�_datarAr�Zforward)rZ	from_noderyr*r!r!r$�helloqs


�r�g�������?)rcKstd�S)zPing worker(s).Zpong)r r�r!r!r$�ping�sr�cKs|jj��S)z&Request worker statistics/information.)rt�
controller�statsr�r!r!r$r��sr�Z
dump_schedule)rcKstt|jj��S)z0List of currently scheduled ETA/countdown tasks.)rm�_iter_schedule_requestsrt�timerr�r!r!r$�	scheduled�sr�c
csl|jjD]^}z|jjd}Wnttfy6YqYq0t|t�r|jrR|j�	�nd|j
|��d�VqdS)Nr)�eta�priorityr[)Zschedule�queue�entryr�
IndexError�	TypeErrorrHrr��	isoformatr�rO)r�ZwaitingZarg0r!r!r$r��s

�r�Z
dump_reservedcKs.|�tj�|�tj�}|s gSdd�|D�S)zAList of currently reserved tasks, not including scheduled/active.cSsg|]}|���qSr!�rO�rPr[r!r!r$�
<listcomp>�rhzreserved.<locals>.<listcomp>)�tsetro�reserved_requestsrq)rr*Zreserved_tasksr!r!r$rY�s

��rYZdump_activecs�fdd�|�tj�D�S)z'List of tasks currently being executed.csg|]}|j�d��qS)��safer�r�r�r!r$r��s�zactive.<locals>.<listcomp>)r�rorq)rr�r*r!r�r$rX�s

�rXZdump_revokedcKs
ttj�S)zList of revoked task-ids.)rmroryr�r!r!r$ry�sryZ
dump_tasks�
taskinfoitemsz[attr1 [attr2 [... [attrN]]]])rrrcsJ|jj��pt�|r�ndd��D�}�fdd����fdd�t|�D�S)z�List of registered tasks.

    Arguments:
        taskinfoitems (Sequence[str]): List of task attributes to include.
            Defaults to ``exchange,routing_key,rate_limit``.
        builtins (bool): Also include built-in tasks.
    css|]}|�d�s|VqdS)zcelery.N)rJ�rPr�r!r!r$�	<genexpr>�szregistered.<locals>.<genexpr>csB�fdd��D�}|r<dd�|��D�}d��jd�|��S�jS)Ncs.i|]&}t�|d�dur|tt�|d���qSr')�getattrrI)rP�field�r�r!r$rR�s�z5registered.<locals>._extract_info.<locals>.<dictcomp>cSsg|]}d�|��qS)rf)r})rP�fr!r!r$r��rhz5registered.<locals>._extract_info.<locals>.<listcomp>z{} [{}]� )rnr|r7r})r��fieldsrO)r�r�r$�
_extract_info�s
�z!registered.<locals>._extract_infocsg|]}��|��qSr!r!r�)r��regr!r$r��rhzregistered.<locals>.<listcomp>)rAr��DEFAULT_TASK_INFO_ITEMS�sorted)rr��builtinsr*r�r!)r�r�r�r$�
registered�s
�
r�gN@r�num�	max_depthz.[object_type=Request] [num=200 [max_depth=10]])rrr���
rcs�zddl}Wnty&td��Yn0t�d|�tjdddd��H}|�|�d|��|j�|�fd	d
�|jd�d|jiWd�S1s�0YdS)
aCreate graph of uncollected objects (memory-leak debugging).

    Arguments:
        num (int): Max number of objects to graph.
        max_depth (int): Traverse at most n levels deep.
        type (str): Name of object to graph.  Default is ``"Request"``.
    rNzRequires the objgraph libraryzDumping graph for type %rZcobjgz.pngF)�prefix�suffix�deletecs|�vSr'r!)�v�Zobjectsr!r$�<lambda>�rhzobjgraph.<locals>.<lambda>)r�Z	highlight�filenamer�)	�objgraph�ImportErrorr{rO�tempfile�NamedTemporaryFileZby_typeZ
show_backrefsr7)rr�r�rZ	_objgraph�fhr!r�r$r��s 
��r�cKsddlm}|�S)z Sample current RSS memory usage.r)�
sample_mem)Zcelery.utils.debugr�)rr*r�r!r!r$�	memsample�sr��samplesz[n_samples=10]cKs(ddlm}t��}|j|d�|��S)z/Dump statistics of previous memsample requests.r)r�)�file)Zcelery.utilsr��io�StringIO�memdump�getvalue)rr�r*r��outr!r!r$r�sr��nz[N=1]cKs4|jjjrtd�S|jj�|�|j�|�td�S)z!Grow pool by n processes/threads.zJpool_grow is not supported with autoscale. Adjust autoscale range instead.zpool will grow)rtr��
autoscalerr&ruZgrow�_update_prefetch_countr �rr�r*r!r!r$�	pool_grows

r�cKs6|jjjrtd�S|jj�|�|j�|�td�S)z#Shrink pool by n processes/threads.zLpool_shrink is not supported with autoscale. Adjust autoscale range instead.zpool will shrink)rtr�r�r&ru�shrinkr�r r�r!r!r$�pool_shrinks

r�cKs2|jjjr&|jjj|||d�td�Std��dS)zRestart execution pool.)�reloaderzreload startedzPool restarts not enabledN)rArDZworker_pool_restartsrtr��reloadr r�)r�modulesr�r�r*r!r!r$�pool_restart-s
r��max�minz[max [min]]cCs>|jjj}|r2|�||�\}}td|�d|���Std��dS)zModify autoscale settings.zautoscale now max=z min=zAutoscale not enabledN)rtr�r�rsr r�)rr�r�r�Zmax_Zmin_r!r!r$�	autoscale7s

r��Got shutdown from remotecKst�|�tt��dS)zShutdown worker(s).N)r{�warningrr)r�msgr*r!r!r$�shutdownDs
r�r�r�
exchange_typerz'<queue> [exchange [type [routing_key]]]cKs2|jj|jj|||pd|fi|��td|���S)z2Tell worker(s) to consume from task queue by name.�directz
add consumer )rt�	call_soonZadd_task_queuer )rr�rr�r�optionsr!r!r$�add_consumerMs��r�z<queue>cKs |j�|jj|�td|���S)z9Tell worker(s) to stop consuming from task queue by name.zno longer consuming from )rtr�Zcancel_task_queuer )rr��_r!r!r$�cancel_consumer_s�r�cCs |jjrdd�|jjjD�SgS)z:List the task queues a worker is currently consuming from.cSsg|]}t|jdd���qS)T)Zrecurse)r`Zas_dict)rPr�r!r!r$r�os�z!active_queues.<locals>.<listcomp>)rtZ
task_consumer�queuesrr!r!r$�
active_queuesks
�r�)F)FN)FN)FN)NNN)N)N)F)NF)r�r�r)r�)r)r)NFN)NN)r�)NNN)Vr1r�r��collectionsrrrZbilliard.commonrZkombu.utils.encodingrZcelery.exceptionsrZcelery.platformsrr	rkZcelery.utils.functionalr
Zcelery.utils.logrZcelery.utils.serializationrr
Zcelery.utils.timerr.rror[r�__all__r�r0r{rr r&rr>r@rBrDrFrT�requests�__getitem__rSrq�__contains__r�rNrdrwr_rIrar�floatr�r�r�r�r�r�r�r�r�r�r�rYrXryr��intr�r�r�r�r�r�r�r�r�r�r�r!r!r!r$�<module>s,
��
	�

�

��6
�
�
$�





	




��
�
�
�
	�	��	�	�


Yohohohohohooho | Sanrei Aya