def run(self): # reset DB flags kuos = get_by_flag(WORK) for uo in kuos: set_flag(uo.mid, STOP) tuos = get_by_flag(WAIT) for uo in tuos: set_flag(uo.mid, STOP) while True: msg = self.s2m.get() # print("pid=%s, self.s2m.get=%s" % (os.getpid(), repr(msg))) who = msg.get("who") if who == "worker": self.handle_mid(msg["mid"], msg["dat"]) elif who == "svr": # self.m2w.put(msg['mid']) self.m2w.put(pick_url(msg["mid"])) elif who == "error": sys.stderr.write(msg["dat"]) # FIXME sys.stderr.write("\n") else: sys.stderr.write("Unknow msg:\n") sys.stderr.write(msg) sys.stderr.write("\n")
def rest(): mid = request.query.mid act = request.query.act print("rest: mid=%s, act=%s" % (mid, act)) if act in ("start",): set_flag(mid, "wait") #mon.s2m.put({"who": "svr", "mid": mid}) s2m.put({"who": "svr", "mid": mid}) redirect("/")
def handle_mid(self, mid, dat): print(dat) if dat.startswith("Process "): dd = dat.split() act = dd[2].lower() print("mid=%s, act=%s" % (mid, act)) set_flag(mid, act) elif dat.startswith("Downloading "): print("mid=[%s]" % mid) update_filename(mid, dat[12:-5])