laxaurus 9 роки тому
батько
коміт
c1da781b9c
4 змінених файлів з 11 додано та 9 видалено
  1. 6 4
      src/rethink/portfolio_monitor.py
  2. 2 2
      src/rethink/table_model.py
  3. 1 1
      src/sh/pm.sh
  4. 2 2
      src/ws/ws_server.py

+ 6 - 4
src/rethink/portfolio_monitor.py

@@ -25,6 +25,7 @@ class PortfolioMonitor(AbstractGatewayListener, AbstractPortfolioTableModelListe
         self.kwargs = copy.copy(kwargs)
         self.twsc = TWS_client_manager(kwargs)
         AbstractGatewayListener.__init__(self, kwargs['name'])
+        AbstractPortfolioTableModelListener.__init__(self, kwargs['name'])
     
         self.tds = TickDataStore(kwargs['name'])
         self.tds.register_listener(self)
@@ -80,7 +81,7 @@ class PortfolioMonitor(AbstractGatewayListener, AbstractPortfolioTableModelListe
                 else: 
                     pass                
                 
-                sleep(0.08)
+                sleep(0.15)
             
         except (KeyboardInterrupt, SystemExit):
             logging.error('PortfolioMonitor: caught user interrupt. Shutting down...')
@@ -347,8 +348,9 @@ class PortfolioMonitor(AbstractGatewayListener, AbstractPortfolioTableModelListe
     # handle requests to get data table json
     def event_tm_request_table_structure(self, event, request_id, account):
         try:
-            self.get_kproducer().send_message(AbstractTableModel.EVENT_TM_TABLE_STRUCTURE_CHANGED, 
-                                          request_id, self.portfolios[account].get_JSON())
+            self.get_kproducer().send_message(AbstractTableModel.EVENT_TM_TABLE_STRUCTURE_CHANGED,                                               
+                                          json.dumps({'origin_request_id': request_id, 'account': account, 
+                                                      'data_table_json': self.portfolios[account].get_JSON()}))
         except:
             logging.error("PortfolioMonitor:event_tm_request_table_structure. Error invoking get_JSON[%s]. Client request id:%s, %s" %
                             account, request_id, ', '.join(e for e in sys.exc_info()))
@@ -374,7 +376,7 @@ if __name__ == '__main__':
       'logconfig': {'level': logging.INFO, 'filemode': 'w', 'filename': '/tmp/pm.log'},
       'topics': ['position', 'positionEnd', 'tickPrice', 'update_portfolio_account', 'event_tm_request_table_structure'],
       'seek_to_end': ['*'],
-      'ws_port': 9001,
+      
       
       }
 

+ 2 - 2
src/rethink/table_model.py

@@ -62,9 +62,9 @@ class AbstractPortfolioTableModelListener(BaseMessageListener):
     
     '''
     
-    def __init__(self, name, ws_server):
+    def __init__(self, name):
         BaseMessageListener.__init__(self, name)
-        self.ws_server = ws_server
+        
 
     def event_tm_table_cell_updated(self, event, source, row, row_values):
         logging.info("[%s] received %s content:[%s]" % (self.name, event, vars()))

+ 1 - 1
src/sh/pm.sh

@@ -12,4 +12,4 @@ else
 fi
 export PYTHONPATH=$FINOPT_HOME:$PYTHONPATH
 #python $FINOPT_HOME/rethink/portfolio_monitor.py  -c -g PM1  
-python $FINOPT_HOME/rethink/portfolio_monitor.py  -g PM1  
+python $FINOPT_HOME/rethink/portfolio_monitor.py -g PM2 

Різницю між файлами не показано, бо вона завелика
+ 2 - 2
src/ws/ws_server.py


Деякі файли не було показано, через те що забагато файлів було змінено