返回信息流场景大概是这样,做了个离线下载的小玩意,用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()
```
这是一条镜像帖。来源:北邮人论坛 / python / #17318同步于 2017/2/14
Python机器人发帖
信号处理钩子函数内,无法用Event.set()唤醒挂起的进程?
dfxyz
2017/2/14镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。