Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/__pycache__/worker.cpython-312.pyc

�

_�*j�+����ddlZddlZddlZddlmZmZddlmZmZddlm	Z	ddl
mZmZddl
mZddlmZmZe	r
ddlmZmZmZe�ZGd	�d
e�ZGd�de�ZGd
�de�Zy)�N)�ABC�abstractmethod)�sleep�time)�
TYPE_CHECKING)�	FullError�Queue)�DEFAULT_QUEUE_SIZE)�logger�mark_sentry_task_internal)�Any�Callable�Optionalc��eZdZdZeedefd���Zed
d��Z	dde	ddddfd	�Z
edefd
��Zedddefd��Zy)�WorkerzBase class for all workers.�returnc��y)z(Whether the worker is alive and running.N���selfs �@/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/worker.py�is_alivezWorker.is_alives��	
�Nc��y)z5Kill the worker. It will not process any more events.Nrrs r�killzWorker.kill���	
r�timeout�callbackz%Optional[Callable[[int, float], Any]]c��y)z<Flush the worker, blocking until done or timeout is reached.Nr�rrrs   r�flushzWorker.flush!s��rc��y)z#Whether the worker's queue is full.Nrrs r�fullzWorker.full'rr�Callable[[], Any]c��y)z;Schedule a callback. Returns True if queued, False if full.Nr�rrs  r�submitz
Worker.submit,rr�rN�N)
�__name__�
__module__�__qualname__�__doc__�propertyr�boolrr�floatr!r#r'rrrrrs���%�
��
�$�
���
��
��
�
SW����(O��	
���
�d�
��
��
�2�
�t�
��
rrc��eZdZefdeddfd�Zedefd��Zdd�Z	de
defd�Zdd	�Zdd
�Z
dde
ddddfd
�Zdefd�Zde
ddddfd�Zdddefd�Zdd�Zy)�BackgroundWorker�
queue_sizerNc�r�t|�|_tj�|_d|_d|_yr))r	�_queue�	threading�Lock�_lock�_thread�_thread_for_pid�rr3s  r�__init__zBackgroundWorker.__init__3s+��$�Z�0����^�^�%��
�59���04��rc��|jtj�k7ry|jsy|jj	�S�NF)r:�os�getpidr9rrs rrzBackgroundWorker.is_alive9s6�����2�9�9�;�.���|�|���|�|�$�$�&�&rc�>�|js|j�yyr)�r�startrs r�_ensure_threadzBackgroundWorker._ensure_threadA����}�}��J�J�L�rrc��t�|z}|j}|jj�	|jrW|t�z
}|dkr	|jj�y|jj
|��|jr�W	|jj�y#|jj�wxYw)NrF�rT)rr5�all_tasks_done�acquire�unfinished_tasks�release�wait)rr�deadline�queue�delays     r�_timed_queue_joinz"BackgroundWorker._timed_queue_joinEs����6�G�#������
���$�$�&�		+��(�(� �4�6�)���A�:� �

� � �(�(�*�	�$�$�)�)�%�)�8�	�(�(��� � �(�(�*��E� � �(�(�*�s�B4�/(B4�4Cc�`�|j5|jsktj|jd��|_d|j
_	|j
j�tj�|_
ddd�y#t$r
d|_Y�wxYw#1swYyxYw)Nzsentry-sdk.BackgroundWorker)�target�nameT)r8rr6�Thread�_targetr9�daemonrCr?r@r:�RuntimeErrorrs rrCzBackgroundWorker.startVs���
�Z�Z��=�=�(�/�/��<�<�.K� ���'+����#�(��L�L�&�&�(�+-�9�9�;�D�(��Z��$�(�$(�D�L�	(���Z�s*�AB$�3B�B!�B$� B!�!B$�$B-c�,�tjd�|j5|jr.	|jjt�d|_d|_ddd�y#t$rtjd�Y�7wxYw#1swYyxYw)z�
        Kill worker thread. Returns immediately. Not useful for
        waiting on shutdown for events, use `flush` for that.
        z"background worker got kill requestz)background worker queue full, kill failedN)	r�debugr8r9r5�
put_nowait�_TERMINATORrr:rs rrzBackgroundWorker.killfsw��
	���9�:�
�Z�Z��|�|�N��K�K�*�*�;�7� $���'+��$��Z��!�N��L�L�!L�M�N��	�Z�s.�
B
�A&�B
�&B�B
�B�B
�
Br�
Optional[Any]c���tjd�|j5|jr|dkDr|j	||�ddd�tjd�y#1swY�xYw)Nz#background worker got flush request�zbackground worker flushed)rrYr8r�_wait_flushr s   rr!zBackgroundWorker.flushvsO�����:�;�
�Z�Z��}�}��3��� � ��(�3��	���0�1��Z�s�$A$�$A-c�6�|jj�Sr)�r5r#rs rr#zBackgroundWorker.full}s���{�{���!�!rc�L�td|�}|j|�s�|jj�dz}t	j
d|�|�	|||�|j||z
�s4|jj�dz}t	jd|�yyy)N皙�����?��%d event(s) pending on flush�"flush timed out, dropped %s events)�minrPr5�qsizerrY�error)rrr�initial_timeout�pendings     rr_zBackgroundWorker._wait_flush�s����c�7�+���%�%�o�6��k�k�'�'�)�A�-�G��L�L�7��A��#���'�*��)�)�'�O�*C�D��+�+�+�+�-��1�����A�7�K�E�
7rr$c�z�|j�	|jj|�y#t$rYywxYw)NTF)rDr5rZrr&s  rr'zBackgroundWorker.submit�s:������	��K�K�"�"�8�,����	��	�s�.�	:�:c�h�	|jj�}	|tur	|jj�y	|�|jj�td��m#t$rtjdd��Y�HwxYw#|jj�wxYw)NT�Failed processing job��exc_infor)r5�getr[�	task_done�	Exceptionrrirr&s  rrUzBackgroundWorker._target�s�����{�{���(�H�
(��{�*�����%�%�'�I��J����%�%�'��!�H���!�I��L�L�!8�4�H�I�����%�%�'�s)�B�A/�/ B�B�B�B�B1r(r))r*r+r,r
�intr<r.r/rrDr0rPrCrr!r#r_r'rUrrrr2r22s���);�5�3�5��5��'�$�'��'��+��+�4�+�"(� ,� 2�U�2�o�2��2�"�d�"�
L�5�
L�O�
L��
L��2��t��rr2c��eZdZefdeddfd�Zedefd��Zdd�Z	dd�Z
defd�Zdd	�Z	dd
e
ddddfd
�Z	dd
e
ddddfd�Zdddefd�Zdd�Zdd�Z	d					dd�Zy)�AsyncWorkerr3rNc�h�d|_||_d|_d|_d|_t�|_yr))r5�_queue_size�_task�
_task_for_pid�_loop�set�
_active_tasksr;s  rr<zAsyncWorker.__init__�s1��6:���%���59��
�.2���<@��
�8;���rc���|jtj�k7ry|jr|jsy|jj�xr|jj
�Sr>)rzr?r@ryr{�
is_running�doners rrzAsyncWorker.is_alive�sO���������,���z�z������z�z�$�$�&�@�t�z�z���/@�+@�@rc��|jrv|jj�t|j�}|D]}|j��|jj	�d|_d|_d|_yyr))ry�cancelr|r}�clearr{rz)r�tasks_to_cancel�tasks   rrzAsyncWorker.kill�sk���:�:��J�J����"�$�"4�"4�5�O�'�����
�(����$�$�&��D�J��D�J�!%�D��rc���|js�	tj�|_tj|j
��|_t�5|jj|j��|_
ddd�tj�|_
yy#1swY�$xYw#t$r-tj d�d|_d|_
d|_
YywxYw)N)�maxsizez/No event loop running, async worker not started)r�asyncio�get_running_loopr{r	rxr5r�create_taskrUryr?r@rzrWr�warningrs rrCzAsyncWorker.start�s����}�}�
*�$�5�5�7��
�%�m�m�D�4D�4D�E���.�0�!%���!7�!7�����!G�D�J�1�%'�Y�Y�[��"��
1�0�� �
*����P�Q�!��
�!��
�%)��"�
*�s*�AB4�/B(�!B4�(B1�-B4�43C*�)C*c�P�|j�y|jj�S)NTrars rr#zAsyncWorker.full�s"���;�;����{�{���!�!rc�>�|js|j�yyr)rBrs r�_ensure_taskzAsyncWorker._ensure_task�rErrrr\c��K�|jr&|jj�r|j�ytd|�}	t	j
|jj
�|���d{���y7�#tj$r�|jj�t|j�z}tjd|�|�	|||�	||z
}t	j
|jj
�|���d{���7Yy#tj$rJ|jj�t|j�z}tjd|�YYywxYwwxYw�w)NrcrGrerf)r{rr5rgr��wait_for�join�TimeoutErrorrh�lenr}rrYri)rrrrjrk�remaining_timeouts      rr_zAsyncWorker._wait_flush�s3�����z�z����!6�!6�!8�D�K�K�<O���c�7�+��
	L��"�"�4�;�;�#3�#3�#5��O�O�O���#�#�	L��k�k�'�'�)�C��0B�0B�,C�C�G��L�L�7��A��#���'�*�
L�$+�o�$=�!��&�&�t�{�{�'7�'7�'9�CT�U�U�U���'�'�
L��+�+�+�+�-��D�4F�4F�0G�G�����A�7�K�
L��	L�sh�AF�2A=�5A;�6A=�:F�;A=�=A$F�"7D!�D�D!�F�!AE>�:F�;F�=E>�>F�FzOptional[asyncio.Task[None]]c��|jrj|dkDre|jrY|jj�r?t�5|jj	|j||��cddd�Sy#1swYyxYw)Nr^)rr{rrr�r_r s   rr!zAsyncWorker.flush�s_���=�=�W�s�]�t�z�z�d�j�j�>S�>S�>U�*�,��z�z�-�-�d�.>�.>�w��.Q�R�-�,��-��s�+A8�8Br$c��|j�|j�y	|jj|�y#tj$rYywxYw)NFT)r�r5rZr��	QueueFullr&s  rr'zAsyncWorker.submit�sM�������;�;���	��K�K�"�"�8�,���� � �	��	�s�;�A�Ac��*��K��j�y		�jj��d{���}|tur�jj�yt	�5tj�j|��}ddd��jj��j�|j��fd��tjd��d{�����7��#1swY�exYw7�#t
j$rYywxYw�w)Nc�(���j|��Sr))�_on_task_complete)�t�	queue_refrs ��r�<lambda>z%AsyncWorker._target.<locals>.<lambda>s����1G�1G��9�1Urr)
r5rqr[rrrr�r��_process_callbackr}�add�add_done_callbackr�CancelledError)rrr�r�s`  @rrUzAsyncWorker._targets�������;�;���	��!%�����!2�2���{�*��K�K�)�)�+��.�0�"�.�.�t�/E�/E�h�/O�P�D�1��"�"�&�&�t�,�!�K�K�	��&�&�'U�V��m�m�A�&�&�&�!�2��
1�0��'���%�%�	��	�s]�D�C:�C*�&C:�D�
C:�#%C,�AC:�$C8�%C:�,C5�1C:�:D�
D�D�Dc��.K�|��d{���y7��wr)rr&s  rr�zAsyncWorker._process_callbacks�����j���s���c�X�	|j�|�|j
�|jj|�y#tj$rY�Ct$rt	j
dd��Y�dwxYw#|�|j
�|jj|�wxYw)NrnTro)	�resultr�r�rsrrirrr}�discard)rr�rNs   rr�zAsyncWorker._on_task_complete#s���
	-��K�K�M�� ����!����&�&�t�,���%�%�	���	A��L�L�0�4�@�	A��� ����!����&�&�t�,�s/�A�A7�A:�A7�4A:�6A7�7A:�:/B)r(r))rr$rN)r�zasyncio.Task[None]rNzOptional[asyncio.Queue[Any]]rN)r*r+r,r
rtr<r.r/rrrCr#r�r0r_r!r'rUr�r�rrrrvrv�s���);�>�3�>��>��A�$�A��A�&�*� "�d�"�
�
;?�L��L�(7�L�	
�L�2;?����(7��	'���2��t���0�15�-�"�-�.�-�
�	-rrv)r�r?r6�abcrrrr�typingr�sentry_sdk._queuerr	�sentry_sdk.constsr
�sentry_sdk.utilsrrr
rr�objectr[rr2rvrrr�<module>r�s[���	��#�� �.�0�>��.�.��h��
�S�
�>n�v�n�bQ-�&�Q-r
Back to Directory File Manager