python函数超时,python程序运行超时
本文主要介绍Python的线程控制和函数超时处理。在本文中,我们使用两种方法来实现eventlet库和@func_set_timeout装饰器。文章详细介绍了一下,有需要的朋友可以参考一下。
00-1010前言1,事件2,功能超时1。安装2。使用
目录
当我们用线程池来控制线程的运行,或者写爬虫的时候,我们需要不停的发送请求来获取地址,所以我们需要控制运行的线程。有这样一种场景,当你写网站请求时,线程一直在请求却不响应,导致线程被阻塞,浪费了宝贵的线程资源。当你写了一个错误的sql查询语句,查询语句要花很多时间才能保持运行,导致其他查询语句阻塞。遇到上述情况,必须控制线程,使程序脚本更加稳定。
控制线程运行时间方法有多种:
这里介绍两种方法。一种是使用eventlet库的方法,只要进行子程序调用就会无效。另一种方法是使用@func_set_timeout装饰器。这种方法可以应用于函数、线程等一系列子函数,是最方便、最简单、最高效的方法。下面是演示这两种方法的代码操作。
前言
该库可以直接下载:
pip安装事件小程序
导入时间
导入事件#导入事件
Eventlet.monkey_patch()#补丁简介
用eventlet.timeout (2,false) : #将超时设置为2秒。
时间.睡眠(3)
打印( 1 )
打印( 2 )
我们设定睡眠时间为3秒,超过了2秒,这样会导致print(1)这条语句执行跳过,直接输出2:
导入时间
导入事件#导入事件
Eventlet.monkey_patch()#补丁简介
用eventlet.timeout (2,false) : #将超时设置为2秒。
时间.睡眠(1)
打印( 1 )
打印( 2 )
当我们修改time.sleep为1小于2时,并没有超时,此时应该输出1、2:
当我们想调用一个子程序时,这个函数不起作用。像这样,这个函数就没有作用了,这个时候就需要用第二种方法了。
一、Eventlet
二、func-timeout
直接安装就好了。
pip安装功能-超时
1.安装
一般与try except一起使用,超时时抛出错误。
从func_timeout导入func_set_timeout
导入函数超时
@func_set_timeout(1)#设置函数的超时执行时间
定义任务(i):
时间.睡眠(2)
打印(一)
尝试:
任务(1)
例外:
打印(2)
此时,如果睡眠时间超过1,应输出2:
从func_timeout导入func_set_timeout
导入函数超时
@func_set_timeout(3)#设置函数的超时执行时间
定义任务(i):
时间.睡眠(2)
打印(一)
尝试:
任务(1)
例外:
打印(2)
所以输出是1。
关于Python线程控制和函数超时处理的这篇文章到此为止。关于Python线程控制的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。