def __init__ (self, symbol, period, broker): self.task_id = Tasks.task_id self.threads = [] self.symbol = symbol self.period = period self.trader = Trader(broker) Tasks.task_id += 1 PeriodicTask.task(self,symbol,period)
def __init__(self, symbol, period, broker): self.task_id = Tasks.task_id self.threads = [] self.symbol = symbol self.period = period self.trader = Trader(broker) Tasks.task_id += 1 PeriodicTask.task(self, symbol, period)
class PeriodicTask(object): task_id = None symbol = None period = None trader = None period_thread = None worker_thread = None stop = False sem_event_ready = threading.Semaphore(0) sem_period_ready = threading.Semaphore(0) def __init__ (self, symbol, period, broker): self.task_id = Tasks.task_id self.threads = [] self.symbol = symbol self.period = period self.trader = Trader(broker) Tasks.task_id += 1 PeriodicTask.task(self,symbol,period) def task(self,symbol,period): try: self.period_thread = threading.Thread(target=self.period_worker,args=(symbol,period)) self.worker_thread = threading.Thread(target=self.event_worker,args=(symbol,period)) self.period_thread.start() self.worker_thread.start() except: return False return True def period_worker(self,symbol,period): while not self.stop: self.sem_period_ready.acquire() self.sem_event_ready.release() # print("BEGIN SLEEP ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) time.sleep(period) # print("END SLEEP ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) print("Thread PERIOD-WORKER END") def event_worker(self,symbol,period): Manager.init(self.trader) while not self.stop: print ("--------------------------EVENT "+str(period)+ " --------------------------") self.sem_period_ready.release() self.sem_event_ready.acquire() # print("1-CALL get_pubticker ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) self.trader.pubticker = self.trader.get_pubticker(symbol) # print("2-CALL event ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) Manager.event(self.trader) # print("3-END-CALL event ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) self.sem_period_ready.release() print("Thred EVENT-WORKER END") Manager.deinit(self.trader) def stop_threads(self): self.stop = True
class PeriodicTask(object): task_id = None symbol = None period = None trader = None period_thread = None worker_thread = None stop = False sem_event_ready = threading.Semaphore(0) sem_period_ready = threading.Semaphore(0) def __init__(self, symbol, period, broker): self.task_id = Tasks.task_id self.threads = [] self.symbol = symbol self.period = period self.trader = Trader(broker) Tasks.task_id += 1 PeriodicTask.task(self, symbol, period) def task(self, symbol, period): try: self.period_thread = threading.Thread(target=self.period_worker, args=(symbol, period)) self.worker_thread = threading.Thread(target=self.event_worker, args=(symbol, period)) self.period_thread.start() self.worker_thread.start() except: return False return True def period_worker(self, symbol, period): while not self.stop: self.sem_period_ready.acquire() self.sem_event_ready.release() # print("BEGIN SLEEP ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) time.sleep(period) # print("END SLEEP ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) print("Thread PERIOD-WORKER END") def event_worker(self, symbol, period): Manager.init(self.trader) while not self.stop: print("--------------------------EVENT " + str(period) + " --------------------------") self.sem_period_ready.release() self.sem_event_ready.acquire() # print("1-CALL get_pubticker ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) self.trader.pubticker = self.trader.get_pubticker(symbol) # print("2-CALL event ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) Manager.event(self.trader) # print("3-END-CALL event ",datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) self.sem_period_ready.release() print("Thred EVENT-WORKER END") Manager.deinit(self.trader) def stop_threads(self): self.stop = True