Edit File: processor.cpython-311.pyc
� ��e� � �� � d Z ddlZddlZddlZddlZddlmZmZ ddlmZm Z m Z ddlmZm Z ddlmZ ddlmZ dd lmZ dd lmZ ddlmZmZmZmZ dd lmZ ddlmZmZm Z e G d� de� � � � Z!dS )z- This module contains RequestProcessor class � N)�datetime� timedelta)�Thread�RLock�current_thread)�Callable�Any� )� AutoTracer)�Common)� DecisionMaker)�StatisticsSender� )� session_scope�setup_database� RequestResult�cleanup_old_data)�SSAError)� singleton� url_split�switch_schedstatsc � � � e Zd ZdZdZd� fd� Zed� � � Zdefd�Z dd �Z dd �Zdede fd�Zddefd�Zd� Zededefd�� � Zd� Zdd�Zdeddfd�Z� xZS )�RequestProcessorz^ SSA Request processor implementation. Only one instance is allowed to be created �d Nc �� �� t � � � � � t j d� � | _ | j � dt � � t d�� � |r|n t � � | _ t � � | _ t |�� � | _ t � � | _ t! |�� � | _ | � � � g | _ d S )N� req_processorzProcessor enabled: %sT��enabled)�engine)�super�__init__�logging� getLogger�logger�info�__package__r r r r �_lockr �decision_makerr �senderr �auto_tracer�start_background_routine�_buffer)�selfr � __class__s ��L/opt/cloudlinux/venv/lib64/python3.11/site-packages/ssa/modules/processor.pyr! zRequestProcessor.__init__) s� �� � ���������'��8�8�������0�+�>�>�>��$�'�'�'�'� &�<�f�f�N�,<�,<����W�W�� �+�6�:�:�:���&�(�(���%�V�4�4�4����%�%�'�'�'� ����� c � � | j dz S )zp Return config file value multiplied by 1000000, as we receive duration in microseconds i@B )�requests_duration)r- s r/ �configured_durationz$RequestProcessor.configured_duration= s � � �%��/�/r0 �reportc � � | j � |� � dS # t $ r3}| j � dt |� � � � Y d}~dS d}~ww xY w)z( Call Statistics Sender zStatisticsSender failed: %sN)r) �sendr r$ �error�str)r- r4 �es r/ � send_statszRequestProcessor.send_statsE sx � � E��K���V�$�$�$�$�$��� E� E� E��K���;�S��V�V�D�D�D�D�D�D�D�D�D����� E���s � � A�(A�A�returnc � � t | j d�� � }|� � � | j � d|j � � dS )zA Start dumper|DecisionMaker thread in background T)�target�daemonz[%s] Routine startedN)r �background_routine�startr$ r% �name)r- �ts r/ r+ z)RequestProcessor.start_background_routineN sG � � �$�1�$�?�?�?�� ��� � � �����/���8�8�8�8�8r0 c �@ � t j � � }|j dk �rc|j dk �rA| j � dt � � j |� � | � | j � � | j � dt � � j |� � | � | j � � | j � dt � � j |� � | � | j � � }| j � dt � � j |� � t | j � � | � | j |� � t d�� � | � d� � n| � |j � � ���) z� Dumps collected stats to file once an hour. Runs DecisionMaker once a day Cleanup storage after DecisionMaker run Tr z2[%s] Routine thread launching buffer flushing (%s)z-[%s] Routine thread launching AutoTracer (%s)z0[%s] Routine thread launching DecisionMaker (%s)z*[%s] Routine thread launching cleanup (%s)r �<