class TaskPusher(object): def __init__(self, data={}): self.expired = 150 self.topic = "bts.exchanges" data_type = ["orderbook", "ticker", "rate"] for _type in data_type: if _type not in data: data[_type] = {} self.data = data def run_tasks(self, loop, login_info=None): def onData(_type, _name, _data, *args, **kwargs): if not _type or not _name or not _data: return if _type not in self.data: return _time = int(time.time()) # only update the data which is expired if _name in self.data[_type] and \ _time - self.data[_type][_name]["time"] < self.expired: return # print("use:", _type, _name) self.data[_type][_name] = _data self.pusher = Pusher(loop, login_info) self.pusher.sync_subscribe(onData, self.topic) def set_expired(self, sec): self.expired = sec
class TaskPusher(object): def __init__(self, data={}): self.expired = 150 self.topic = "bts.exchanges" data_type = ["orderbook", "ticker", "rate"] for _type in data_type: if _type not in data: data[_type] = {} self.data = data def run_tasks(self, loop, login_info=None): def onData(_type, _name, _data, *args, **kwargs): if not _type or not _name or not _data: return if _type not in self.data: return _time = int(time.time()) # only update the data which is expired if _name in self.data[_type] and _time - self.data[_type][_name]["time"] < self.expired: return # print("use:", _type, _name) self.data[_type][_name] = _data self.pusher = Pusher(loop, login_info) self.pusher.sync_subscribe(onData, self.topic) def set_expired(self, sec): self.expired = sec
def run_tasks(self, loop, login_info=None): def onData(_type, _name, _data, *args, **kwargs): if not _type or not _name or not _data: return if _type not in self.data: return _time = int(time.time()) # only update the data which is expired if _name in self.data[_type] and \ _time - self.data[_type][_name]["time"] < self.expired: return # print("use:", _type, _name) self.data[_type][_name] = _data self.pusher = Pusher(loop, login_info) self.pusher.sync_subscribe(onData, self.topic)
def run_tasks(self, loop, login_info=None): def onData(_type, _name, _data, *args, **kwargs): if not _type or not _name or not _data: return if _type not in self.data: return _time = int(time.time()) # only update the data which is expired if _name in self.data[_type] and _time - self.data[_type][_name]["time"] < self.expired: return # print("use:", _type, _name) self.data[_type][_name] = _data self.pusher = Pusher(loop, login_info) self.pusher.sync_subscribe(onData, self.topic)
def init_pusher(self, loop): self.future_pusher = asyncio.Future() self.pusher = Pusher(loop, co=self.__init_pusher) loop.run_until_complete(asyncio.wait_for(self.future_pusher, 999))