def start(self): """Start the event loop.""" def keyboard_interrupt(s, f): print("KeyboardInterrupt (ID: {}) has been caught. Cleaning up...".format(s)) self.loop.stop() signal.signal(signal.SIGINT, keyboard_interrupt) log.info("start io loop ...", caller=self) self.loop.run_forever()
def stop(self): """Stop the event loop.""" log.info("stop io loop.", caller=self) self.loop.stop()
def subscribe(self, market_type, platform, symbol, callback): self.ev = EventServer() key = f"{platform}.{symbol}" self.ev.subscribe(market_type, callback, key) log.info(f"{market_type},{key},订阅成功!")
def orderbookcallback(ch, method, properties, data): e = Event() e.loads(data) log.info(f"Orderbook data:{e.data}")
def tickcallback(ch, method, properties, data): e = Event() e.loads(data) log.info(f"Tick data:{e.data}")
def publish(self,event): log.info(f"publish exchange:{event.exchange},key:{event.routing_key},data{event.data}") data = event.dumps() self._channel.basic_publish(exchange=event.exchange, routing_key=event.routing_key, body=data)