BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #17318同步于 2017/2/14
Python机器人发帖

信号处理钩子函数内,无法用Event.set()唤醒挂起的进程?

dfxyz
2017/2/14镜像同步0 回复
场景大概是这样,做了个离线下载的小玩意,用multiprocessing开了个守护进程不断从Redis里面读取任务URL,如果读取完了则用Event.wait()挂起,直到Web那边接到请求发送一个自定义信号过来,再Event.set(),但是实际发现守护进程完全无法唤醒。有什么替代方案么? ```python def run(self): signal.signal(custom_signal, self.signal_handler) while self.running: url = get_task_url_from_redis() if url is None: self.incoming_task.clear() self.incoming_task.wait() else: self.download(url) def signal_handler(self, signum, frame): if signum == custom_signal: self.incoming_task.set() ```
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。