def setTimeout(self, second, param, *args, **kwargs): self.type = self.TIMER_ONCE self.second = second msg = MsgPack(Message.MSG_INNER_TIMER, param) uid = msg.get_param('userId') gid = msg.get_param('gameId') msg = MsgLine(msg.pack(), gid, target=uid).pack() task = self.tasklet(Message.to_inner(Message.MSG_INNER_TIMER), msg, None).run self.timer = TaskManager.call_later(self.__timeout, second, msg, task, *args, **kwargs) return True
def setInterval(self, interval, param, delay=None, *args, **kwargs): self.type = self.TIMER_LOOP self.second = interval msg = MsgPack(Message.MSG_INNER_TIMER, param) uid = msg.get_param('userId') gid = msg.get_param('gameId') msg = MsgLine(msg.pack(), gid, target=uid).pack() task = self.tasklet(Message.to_inner(Message.MSG_INNER_TIMER), msg, None).run if delay is None: self.timer = TaskManager.call_later(self.__timeout, self.second, msg, task, *args, **kwargs) else: self.timer = TaskManager.call_later(self.__timeout, delay, msg, task, *args, **kwargs) return True