
    e                         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      Z ed      d        Zd Zy)    )strategy)StrategyManager)BrokerN)sleep)pdSeries)shared_task)dumpsloads)MessageQueue)settings)datetime)Telegram)HttpResponsec                       e Zd ZddZddZy)StrategyMonitorNc                     || _         y )N)User)selfusers     MC:\Janisar\Projects\Genie\myGenie\trading\views\Strategies\strategyMonitor.py__init__zStrategyMonitor.__init__   s	    	    c                 |   t        | j                        | _        | j                  j                          d }t	        | j                  j
                        dkD  rt        j                  | j                  j
                        }t        |      }|j                  D ]C  }|t        | j                  j                  |t        | j                  j
                               E |j                  D ]C  }|t        | j                  j                  |t        | j                  j
                               E t        d       y y )Nr   z$Monitor process Assginment completed)r   r   ManagergetActiveStrategieslenActiveScriptspd	DataFramer   OrderQIdworkerStrategyMonitorid	jsondumpsTickQIdprint)r   seriesscriptFramescriptSeriesr    r$   s         r   startMonitorzStrategyMonitor.startMonitor   s    &tyy1((*t||))*Q.,,t||'A'ABK#K0L(11')$)),,)DLLLfLfBgh 2
 (//&)$)),,4<<KeKeAfg 0
 89 /r   )returnN)__name__
__module____qualname__r   r)    r   r   r   r      s    :r   r   T)bindc                 0   t         j                  }t        |      }t        j                  |      }d }t        |      }t        |d|      }t        |d|      }	t        |j                        dk(  r|	}t        |	j                        dk(  r|}|j                  sot        |j                  d         }
t        |      }|
j                  |j                  d         r-|j                  |      }|rat!        j"                  t%        j&                  d            |z
  }t)        |j+                               }||kD  r|j-                  d| d| d       |j                  D ]  }| d| }|j                  |      }|st!        j"                  t%        j&                  d            |z
  }t)        |j+                               }||kD  sh|j-                  d| d| d        t/        |       |
j                  |j                  d         r-t1        d	| d
       y )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   UserIdQueueIdlstActiveScriptsmoniterTimer'   r&   tg	ordSeries
tickSeriesbrokermqladiffscodeQSCodes                   r   r!   r!   *   s   ..K !12,,/0KF	&	BZ8I+i8J
9!!"a'
:""#q(<<*+'"!!&//!"45!!'*B||DMM.$ABRG4--/0+%NN^G9<MdVS]#^_,,#9AeW-%%f-#<<n(EFKDt1134Dk)x?PQUPVV`'ab - +% !!&//!"45& 
!')
45r   c                 b    t        | j                        }|j                          t        d      S )NzMonitor started)r   r   r)   r   )requestmonitors     r   
reqMonitorrP   U   s(    gll+G)**r   ) trading.views.Strategiesr   (trading.views.Strategies.strategyManagerr   %trading.views.Entities.Brokers.brokerr   pandasr   timer   mainapp.views.utilsr   celeryr   jsonr	   r#   r
   r3    trading.views.Redis.messageQueuer   django.confr   r;   r   mainapp.views.socialconnectr   django.httpr   r   r!   rP   r.   r   r   <module>r]      sX    - D 8   (  7 9     0 $: :4 $&6 &6T+r   