Python中相当于PHP的set_time_limit()是什么?

0 投票
2 回答
736 浏览
提问于 2025-04-15 17:46

我有一个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 函数不会计算在系统调用中花费的时间,所以如果系统调用卡住了,这也会成为一个问题。

撰写回答