具体原因不清楚,但是你可以采取一些措施来避免。
比如你可以设计一个像硬件看门狗电路一样的程序,正常情况下,每隔一段时间就“喂狗”,当程序假死后,狗饿了,就会回来“咬你一口”,其实就是让程序复位啦。
我遇到的这种现象常见在引用占用了大量的系统内存,后来我将直接读入大量数据到内存的过程改为用iter读取, 现象没再出现.
你的方案"超过一定时间...", 可以视为"守护进程",
如果这个进程是你的应用内的某个线程, 恐怕它会一同"睡"去 :(
.. 还是先确认一下是否是内存占用的原因吧, 如果是通过节省内存的方式可以克服的.
如果是爬虫的话,这个一般都是由于网络原因造成的卡住,可以做两层控制:在HTTP请求上设置好超时时间,最好设定sockect的超时,这样更底层一些。
在上层做一个检测机制,定时轮询线程是否正常,如果遇到不响应的直接kill掉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)