def run(self): self._status = "working" while self._status: _func, args = self._queue.get() if not self._status: break if not _func: break self.clear() self._name = name(_func) self.setName(self._name) self._begin = time.time() try: _func(*args) except Exception as ex: logging.error("& %s %s" % (str(ex), get_exception())) self._status = "ready" self._last = time.time() logging.info("! Task.finish %s %.6ss" % (self._name, self._last - self._begin)) try: args[0].ready() except IndexError: pass if "once" in self and self.once: break
def forced(event): for bot in fleet: try: bot._sock.shutdown(2) except: event.reply("%s bot doesn't have a _sock attribute" % name(bot))
def exit(self): logging.warn("# exit %s" % name(self)) self._status = "" self._sock.settimeout(1.0) self._sock.sendto(bytes("bla", "utf-8"), (cfg.udp.host, cfg.udp.port))