Python中相当于PHP的set_time_limit()是什么?
我有一个Python脚本,它在运行的时候卡住了(我觉得它在某个地方等着接收网络数据),但是我很难获取到错误信息,因为我只能通过强制结束进程来停止它。这个网络连接还有一个超时设置,但似乎没有起作用。
我希望Python能有一个类似于PHP的 set_time_limit() 函数的功能,这样可以停止脚本并给我一个有用的错误信息,可能会显示出一个卡住的 sock.recv()
调用,或者某个地方的死循环。
2 个回答
1
你可以给你的套接字设置一个超时时间。
import socket
socket.setdefaulttimeout(10) #10 seconds
在你程序开始的时候这样做,所有进行套接字连接的操作都会遵循这个设置。
3
signal.alarm 可以在 Unix 系统上提供帮助,但根据不同的平台,可能会有一些无法中断的系统调用。如果我理解得没错,在 Unix 系统上,PHP 的 set_time_limit 函数不会计算在系统调用中花费的时间,所以如果系统调用卡住了,这也会成为一个问题。