관리-도구
편집 파일: inactivity.cpython-311.pyc
� IMg� � �r � d Z ddlZddlmZmZ ddlmZ ee� � Z G d� d� � Z e � � Z dS )z�This module implement inactivity tracker for ImunifyAV to automaticaly shutdown the process when it is idle for certain time (no RPC calls and long running tasks). � N)�contextmanager�suppress)� getLoggerc �X � e Zd Zd� Zd� Zed� � � Zd� Zd� Zd� Z d� Z ded d fd�Zd S )�InactivityTrackerc �` � t j � � | _ d| _ g | _ d| _ d S )Nr )�time� monotonic�_last_action_timestamp�_long_action_counter�_long_actions_list�_timeout��selfs �S/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/api/inactivity.py�__init__zInactivityTracker.__init__ s- � �&*�n�&6�&6��#�$%��!�"$����� � � � c �j � d� t j � � | j z | j � � S )Nz,Time from last action is {}, long actions {})�formatr r r r r s r �__str__zInactivityTracker.__str__ s3 � �=�D�D��N���t�:�:��#� � � r c # � K � | � |� � d V � | � |� � d S # | � |� � w xY w�N)�start�stop�r �names r �taskzInactivityTracker.task sM � � � �� � �4���� ��E�E�E��I�I�d�O�O�O�O�O��D�I�I�d�O�O�O�O���s �4 �Ac �6 � t j � � | _ d S r )r r r r s r �reset_timerzInactivityTracker.reset_timer! s � �&*�n�&6�&6��#�#�#r c � � | xj dz c_ | j � |� � | � � � d S �N� )r r �appendr r s r r zInactivityTracker.start$ sE � ��!�!�Q�&�!�!���&�&�t�,�,�,��������r c �� � | xj dz c_ t t � � 5 | j � |� � d d d � � n# 1 swxY w Y | � � � d S r! )r r � ValueErrorr �remover r s r r zInactivityTracker.stop) s� � ��!�!�Q�&�!�!� �j� !� !� 1� 1��#�*�*�4�0�0�0� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1� 1���� 1� 1� 1� 1��������s �A�A�Ac �Z � | j o#| j | j z t j � � k S r )r r r r r r s r � is_timeoutzInactivityTracker.is_timeout/ s/ � ��-�-� ��'�$�-�7�4�>�;K�;K�K� r �timeout�returnNc � � || _ d S r )r )r r) s r �set_timeoutzInactivityTracker.set_timeout4 s � ��� � � r ) �__name__� __module__�__qualname__r r r r r r r r( �intr, � r r r r s� � � � � � �� � � � � � �� � �^��7� 7� 7�� � � � � � � � � �3� �4� � � � � � r r )�__doc__r � contextlibr r �loggingr r- �loggerr �trackr1 r r �<module>r7 s� ��� � ���� /� /� /� /� /� /� /� /� � � � � � � ��8� � ��) � ) � ) � ) � ) � ) � ) � ) �X ������r