3
_                 @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dZG dd dZG dd dZ	d	d
 Z
G dd dZedkr|e
  dS )    N)MyThread)strftimez)/var/www/html/amocrm/callthelist/call.phpc               @   s   e Zd Zdd Zdd ZdS )SigFunctionsConc             C   s
   || _ d S )N)Z_SigFunctionsCon__ourdaemon)self	ourdaemon r   8/var/www/html/amocrm/callthelist/PyDaemon/demonconfig.py__init__   s    zSigFunctionsCon.__init__c             C   s0   t dtj }tjjd| d tjd d S )Nz%H:%M %d.%mu   Остановлен в 
r   )r   time	localtimesysstdoutwriteexit)r   now_timer   r   r   SIGTERM   s    zSigFunctionsCon.SIGTERMN)__name__
__module____qualname__r	   r   r   r   r   r   r   
   s   r   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )ReactFunctionConc             C   s
   || _ d S )N)_ReactFunctionCon__ourdaemon)r   r   r   r   r   r	      s    zReactFunctionCon.__init__c             C   s   | j j  d S )N)r   start)r   r   r   r   r      s    zReactFunctionCon.startc             C   s   | j j  d S )N)r   stop)r   r   r   r   r      s    zReactFunctionCon.stopc             C   s   | j j  d S )N)r   status)r   r   r   r   r       s    zReactFunctionCon.statusc             C   s   | j j  d S )N)r   restart)r   r   r   r   r   #   s    zReactFunctionCon.restartc             C   s   t | | jj  d S )N)printr   r   )r   messager   r   r   stmess&   s    zReactFunctionCon.stmessN)	r   r   r   r	   r   r   r   r   r   r   r   r   r   r      s   r   c              C   sZ   dt  d } tj| dtjtjdd}|jdkr2dS |jjd}|j  t	|dkrVdS |S )	Nz7egrep -o '^\s*\[\"time\" => \"[0-9]{1,2}:[0-9]{1,2}\"' z# | egrep -o '[0-9]{1,2}:[0-9]{1,2}'TzUTF-8)shellr   stderrencodingr      r
   )
	path_call
subprocessrunPIPEDEVNULL
returncoder   splitpoplen)Z
expressionanswertimesr   r   r   
parse_time+   s    
r.   c               @   sF   e Zd ZdZdejd  de Zdd Zdd Zd	Z	d
Z
dZdZdS )StatConz{start|stop|status}zusage: r    c             C   s8   t dtj }x$|dkr2t dtj }tjd qW dS )ur   
        функция выравнивает время до ровной минуты
        :return:
        z%SZ59   N)r   r   r   sleep)r   r   r   r   r   time_alignmentC   s    
zStatCon.time_alignmentc             C   s   t dtj }td|  t }|dkr:td ddg}td|  x^| j  t dtj }||krd	rtd
|  tdt}|j  tj	d t dtj }qJW d S )Nz%H:%M %d.%mu   
Запуск pydaemon в r"   uf   Не удалось получить время из скрипта php, взято дефолтноеz11:00z15:00u   время запуска: z%H:%MTu#   Запуск php скрипта в z/usr/bin/php5   )
r   r   r   r   r.   r3   r   r#   r   r2   )r   r   Ztime_runZ	my_threadr   r   r   r%   N   s     

zStatCon.runz*/var/log/python-daemon/daemon-naprimer.pidz	/dev/nullz%/var/log/python-daemon/out-daemon.logz%/var/log/python-daemon/err-daemon.logN)r   r   r   Zcommandsr   argvstrHelpr3   r%   pidFileinputter	outputtererrorerr   r   r   r   r/   ?   s   r/   __main__)r   osr$   r   Zcustom_threadr   r   r#   r   r   r.   r/   r   r   r   r   r   <module>   s   +