什么是PHP的set_time_limit()的Python等价物?

时间:2010-01-08 00:08:44

标签: php python

我有一个冻结的python脚本(我认为它在某处停止等待套接字数据),但是我无法获得回溯,因为阻止它的唯一方法是终止进程。有一个超时套接字也,但它似乎不起作用。

我希望Python有一个像PHP的set_time_limit()函数这样的功能,它可以停止脚本并给我一个有用的回溯,可能会显示一个被冻结的sock.recv()调用,或某个无限循环。

2 个答案:

答案 0 :(得分:3)

signal.alarm可以提供帮助(在Unix平台上),但是(取决于平台)可能会有不间断的系统调用(如果我的文档是正确的,在Unix上,PHP的set_time_limit不计算在系统中花费的时间)电话,所以挂电话也是一个问题。

答案 1 :(得分:1)

您可以在套接字上设置超时。

import socket
socket.setdefaulttimeout(10) #10 seconds

在程序开始时执行此操作,并且所有进行套接字连接的内容都应该尊重它。