如何使用Python第三方库设置函数执行超时时间限制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计923个文字,预计阅读时间需要4分钟。
前言+1、通常我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。就拿爬虫来举例,发送请求后,服务器会在指定时间内响应(通常这个时间很短),但有可能服务器没‘响应。
前言
1、通常我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。就拿爬虫来举例,发送请求后服务器会在指定时间内响应(通常这个时间很短),但是有可能服务器没有返回任何数据,无论是服务器已经识别爬虫不予返回数据亦或者是服务器繁忙等其他原因,此时,爬虫程序就会一直等待来自服务器的响应,这个时候就会非常浪费资源,甚至造成程序阻塞。
2、比如说python的requests库中有自己的时间超时机制,例如:requests.post(url, headers=headers, data=data, proxies=proxies, timeout=15):表示获取服务器资源的最大时间不超过15s,否则将会抛出TimeOutException异常。
3、使用python第三方func_timeout模块中提供的func_set_timeout装饰器可以非常简单的设置python程序的超时时间,超时后程序抛出func_timeout.exceptions.FunctionTimedOut异常。此时再用try-except做异常处理即可。
本文共计923个文字,预计阅读时间需要4分钟。
前言+1、通常我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。就拿爬虫来举例,发送请求后,服务器会在指定时间内响应(通常这个时间很短),但有可能服务器没‘响应。
前言
1、通常我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。就拿爬虫来举例,发送请求后服务器会在指定时间内响应(通常这个时间很短),但是有可能服务器没有返回任何数据,无论是服务器已经识别爬虫不予返回数据亦或者是服务器繁忙等其他原因,此时,爬虫程序就会一直等待来自服务器的响应,这个时候就会非常浪费资源,甚至造成程序阻塞。
2、比如说python的requests库中有自己的时间超时机制,例如:requests.post(url, headers=headers, data=data, proxies=proxies, timeout=15):表示获取服务器资源的最大时间不超过15s,否则将会抛出TimeOutException异常。
3、使用python第三方func_timeout模块中提供的func_set_timeout装饰器可以非常简单的设置python程序的超时时间,超时后程序抛出func_timeout.exceptions.FunctionTimedOut异常。此时再用try-except做异常处理即可。

