精华内容
下载资源
问答
  • import eventlet eventlet.monkey_patch()#必须加这条代码 with eventlet.Timeout(2.5, False)://2.5为执行时间 response_status = self.testProxy(url, proxy)
    import eventlet
    eventlet.monkey_patch()#必须加这条代码
    with eventlet.Timeout(2.5, False)://2.5为执行时间
         response_status = self.testProxy(url, proxy)

     

    展开全文
  • # coding=utf-8import signalimport timedef set_timeout(num, callback):def wrap(func):def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted ...

    # coding=utf-8

    import signal

    import time

    def set_timeout(num, callback):

    def wrap(func):

    def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted stack frame.

    raise RuntimeError

    def to_do(*args, **kwargs):

    try:

    signal.signal(signal.SIGALRM, handle) # 设置信号和回调函数

    signal.alarm(num) # 设置 num 秒的闹钟

    print 'start alarm signal.'

    r = func(*args, **kwargs)

    print 'close alarm signal.'

    signal.alarm(0) # 关闭闹钟

    return r

    except RuntimeError as e:

    callback()

    return to_do

    return wrap

    if __name__ == '__main__':

    def after_timeout(): # 超时后的处理函数

    print "do something after timeout."

    @set_timeout(2, after_timeout) # 限时 2 秒

    def connect(): # 要执行的函数

    time.sleep(1) # 函数执行时间,写大于2的值,可测试超时

    return 'connect success.'

    print connect()

    展开全文
  • 如下所示:# coding=utf-8import signalimport timedef set_timeout(num, callback):def wrap(func):def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the ...

    如下所示:

    # coding=utf-8

    import signal

    import time

    def set_timeout(num, callback):

    def wrap(func):

    def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted stack frame.

    raise RuntimeError

    def to_do(*args, **kwargs):

    try:

    signal.signal(signal.SIGALRM, handle) # 设置信号和回调函数

    signal.alarm(num) # 设置 num 秒的闹钟

    print 'start alarm signal.'

    r = func(*args, **kwargs)

    print 'close alarm signal.'

    signal.alarm(0) # 关闭闹钟

    return r

    except RuntimeError as e:

    callback()

    return to_do

    return wrap

    if __name__ == '__main__':

    def after_timeout(): # 超时后的处理函数

    print "do something after timeout."

    @set_timeout(2, after_timeout) # 限时 2 秒

    def connect(): # 要执行的函数

    time.sleep(1) # 函数执行时间,写大于2的值,可测试超时

    return 'connect success.'

    print connect()

    以上这篇python 限制函数执行时间,自己实现timeout的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • http://blog.sina.com.cn/s/blog_63041bb80102uy5o.html背景:最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置函数调用超时机制。代码:import timeimport signaldef test(i):...

    http://blog.sina.com.cn/s/blog_63041bb80102uy5o.html

    背景:

    最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。

    代码:import time

    import signal

    def test(i):

    time.sleep(i%4)

    print "%d within time"%(i)

    return i

    if __name__ == '__main__':

    def handler(signum, frame):

    raise AssertionError

    i = 0

    for i in range(1,10):

    try:

    signal.signal(signal.SIGALRM, handler)

    signal.alarm(3)

    test(i)

    i = i + 1

    signal.alarm(0)

    except AssertionError:

    print "%d timeout"%(i)

    说明:

    1、调用test函数超时监控,使用sleep模拟函数执行超时

    2、引入signal模块,设置handler捕获超时信息,返回断言错误

    3、alarm(3),设置3秒闹钟,函数调用超时3秒则直接返回

    4、捕获异常,打印超时信息

    程序执行结果:1 within time

    2 within time

    3 timeout

    4 within time

    5 within time

    6 within time

    7 timeout

    8 within time

    9 within time

    展开全文
  • python3 设置函数执行超时 eventlet模块

    千次阅读 2020-02-05 19:58:28
    可以利用python中的装饰器实现对函数执行时间的控制。 python装饰器简单来说可以在不改变某个函数内部实现和原来调用方式的前提下对该函数增加一些附件的功能,提供了对该函数功能的扩展。 方法一. 使用 signal ...
  • Python3.6 怎样设置函数运行超时退出Python学得倒不用很深,循环跟函数还有类学完就可以搞深度学习了。 新手用深度学习库先跑跑,真要进阶还要修改的话,你会发现瓶颈其实在数学。python某段代码执行时间过长,如何...
  • 需求靠山在python代码的实现中,若是我们有一个需要执行时间跨度非常大的for循环,若是在中心的某处我们需要准时住手这个函数,而不住手整个程序。那么开端的就可以想到两种方案:第一种方案是我们先预估for循环或者...
  • 最近写bug时遇到一个关于函数执行超时的问题,就是某一步执行时间过长,或者程序直接卡死了,找到了三种解决方法,现在叙述下,帮助需要的人。(1)使用eventletimport timeimport eventlet #导入eventlet这个模块...
  • 需求背景在python代码的实现中,假如我们有一个需要执行时间跨度非常大的for循环,如果在中间的某处我们需要定时停止这个函数,而不停止整个程序。那么初步的就可以想到两种方案:第一种方案是我们先预估for循环或者...
  • Python2.x设置命令执行的超时时间

    千次阅读 2017-09-15 09:49:33
    Python2.x中的几个用来执行命令行的库或函数在执行命令是均不能设置一个命令执行的超时时间,用来在命令执行时间超时时终端这个命令的执行,这个功能在3.x(?)中解决了,但是在2.x还是只能自己实现。下面就简单...
  • python装饰器:三种函数超时机制[问题]在python中阻塞式地调用某个函数时,如果函数执行实行过长或者卡住是我们无法接受的,那么我们就需要一种机制:给函数设置一个“执行超时时间”,当函数执行时间超过设定的阈值...
  • Python2.x中的几个用来执行命令行的库或函数在执行命令是均不能设置一个命令执行的超时时间,用来在命令执行时间超时时终端这个命令的执行,这个功能在3.x(?)中解决了,但是在2.x还是只能自己实现。下面话不多...
  • timeit模块可以用来测试一小段Python模块的执行时间。 class timeit.Timer(stmt=‘pass’, setup=‘pass’, timer = < timer function >) Timer是测试小段代码执行速度的类。stmt(statement)参数是需要...
  • python某段代码执行时间过长,如何跳过执行下一步?python 如何跳过异常继续执行python 中os.system() 调用命令超时后,如何停止Python3.6 怎样设置函数运行超时退出Python学得倒不用很深,循环跟函数还有类学完就...
  • 这段时间在制作一个爬虫的时候发现了一个比较神奇的事情 python requests 包发起请求的时候设置 timeout 参数 竟然不起作用? what 你要弄啥幺蛾子嘞, 后来各种找原因终于在别人的提醒下又看了下 requests 的文档...
  • timeit模块可以用来测试一小段python代码的执行速度 class timeit.Timer(stmt = ‘pass’,setup = ‘pass’,timer=) Timer是测量小段代码执行速度的类 stmt参数是要测试的代码语句(statment); setup参数是运行...
  • 促销活动结束之后,要回滚库存,促销活动开始之前设置redis,到期删除,通过回调函数拿到key, 执行回调库存脚本 redis下载: 下载链接:下载链接-转载 redis键空间回调函数介绍: redis发布订阅设置: 当我们...
  • python固定时间自动执行代码

    万次阅读 2019-01-29 10:44:16
    python固定时间自动执行代码由于较易实现,直接上代码 由于较易实现,直接上代码 #引入time包 import time #函数定义 def sleeptime(hour,min,sec): return hour*3600 + min*60 + sec; #设置自动执行间隔时间,我...
  • python的timeit模块测函数运行时间

    千次阅读 2018-01-26 15:57:40
    timeit模块可以用来测试一小段Python代码的执行速度。 class timeit.Timer(stmt='pass', setup='pass', timer=) Timer是测量小段代码执行速度的类。 stmt参数是要测试的代码语句(statment); setup参数是运行...
  • 1.timeit模块timeit模块可以用来测试一小段python代码的执行速度class timeit.Timer(stmt = 'pass',setup = 'pass',timer=)Timer是测量小段代码执行速度的类stmt参数是要测试的代码语句(statment);setup参数是运行...
  • 2.在查找函数上加个睡眠时间的装饰器,函数执行完等待若干秒 3.同理可以举一返三的使用,装饰器,可以实现很多的功能。 def replay(retime): """ 设置回放时间,装饰器 :param retime...
  • 我一直在研究如何在x轴上对时间进行绘图,并对它进行了相当多的排序,有一个奇怪的怪癖让我想知道我是否遇到过一个bug或者(更可能的是)我在做什么我真的不明白.简单地说,下面是我的程序的简化版本.如果我把它放在.py...
  • Python游戏开发入门http://edu.csdn.net/course/detail/5690跟老菜鸟学pythonhttp://edu.csdn.net/course/detail/2592在...碰到这种需求时不要惊慌,可以使用wait()里的timeout参数来设置等待时间,也就是从这个函数
  • 展开全部碰到这种需求时不要惊慌,可以使62616964757a686964616fe4b893e5b19e31333363393638用wait()里的timeout参数来设置等待时间,也就是从这个函数开始运行算起,如果时间到达协程没有执行完成,就可以不再等...
  • python设置计时器的方法:1、使用time.time()获取开始与结束的时间,将两个时间相减即可进行计时importtimetime_start=time.time()#开始计时#要执行的代码,或函数#要执行的代码,或函数time_end=time.time()#结束...
  • python设置计时器的方法:1、使用time.time()获取开始与结束的时间,将两个时间相减即可进行计时importtimetime_start=time.time()#开始计时#要执行的代码,或函数#要执行的代码,或函数time_end=time.time()#结束...
  • 它采用队列中最早的条目,如果它小于1秒,则在差异的持续时间内调用sleep函数。在from multiprocessing import Pool, Manager, queuesfrom random import randintimport timeMAX_CONNECTIONS = 10P...
  • 首先给大家分享一个个人在使用python的ctypes调用c库的时候遇到的一个小坑这次出问题的地方是一个C函数,返回值是malloc生成的字符串地址。平常使用也没问题,也用了有段时间, 没发现什么异常。这次在测试中,发现...
  • 本代码作用,使用装饰器做一个计时函数,使用此计时函数来装饰其他的函数,计算其他函数执行耗时代码如下:import timedef jishi(fun... #定义内层函数fun2,参数为不定长参数start=time.time() #设置起始时间start...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 195
精华内容 78
关键字:

python设置函数执行时间

python 订阅