U
    e                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlZd dlmZ d dlmZ d dlmZ G dd dZedddd Zdd ZdS )    )strategy)StrategyManager)BrokerN)sleep)pdSeries)shared_task)dumpsloads)MessageQueue)settings)datetime)Telegram)HttpResponsec                   @   s(   e Zd ZddddZddddZdS )StrategyMonitorN)returnc                 C   s
   || _ d S )N)User)selfuser r   F/home/worker/Genie/myGenie/trading/views/Strategies/strategyMonitor.py__init__   s    zStrategyMonitor.__init__c                 C   s   t | j| _| j  d }t| jjdkrt| jj}t|}|j	D ]$}|d k	rFt
| jj|t| jj qF|jD ]$}|d k	rrt
| jj|t| jj qrtd d S )Nr   z$Monitor process Assginment completed)r   r   ManagergetActiveStrategieslenActiveScriptspd	DataFramer   OrderQIdworkerStrategyMonitorid	jsondumpsTickQIdprint)r   seriesscriptFrameZscriptSeriesr   r!   r   r   r   startMonitor   s    


zStrategyMonitor.startMonitor)__name__
__module____qualname__r   r%   r   r   r   r   r      s   r   T)bindc                 C   sd  t j}t|}t|}d }t|}t|d|}t|d|}	t|jdkrN|	}t|	jdkr`|}|j	sPt
|jd }
t|}|
|jd rP||}|rttd| }t| }||kr|d| d| d |jD ]`}| d| }||}|rttd| }t| }||kr|d| d| d qt| q~td	| d
 d S )Nr   r!   r   zAsia/KolkatazMessage Queue z has stoped from z
 second(s):zQueue Monitoring for z	 is ended)r   WORKER_MONITOR_TIME	jsonloadsr   r   r   r   r   strategyCodeemptyr   brokerIdr
   isMarketOpenexchangegetLastAccessr   nowpytztimezoneinttotal_secondssendMessager   r"   )r   ZUserIdQueueIdlstActiveScriptsZmoniterTimer$   r#   tgZ	ordSeriesZ
tickSeriesbrokerZmqladiffZscodeZQSCoder   r   r   r   *   s>    




r   c                 C   s   t | j}|  tdS )NzMonitor started)r   r   r%   r   )requestmonitorr   r   r   
reqMonitorU   s    
rA   ) Ztrading.views.Strategiesr   (trading.views.Strategies.strategyManagerr   %trading.views.Entities.Brokers.brokerr   pandasr   timer   mainapp.views.utilsr   celeryr   jsonr   r    r	   r,    trading.views.Redis.messageQueuer
   django.confr   r4   r   mainapp.views.socialconnectr   django.httpr   r   r   rA   r   r   r   r   <module>   s"   
*