python如何解决指定代码段超时程序卡死

作者:AI_Frank 时间:2023-01-12 04:04:10 

python解决指定代码段超时程序卡死

最近我写的一个程序中遇到了解析网页的代码,对于网页信息比较多的可能会超时,最后解析失败,程序卡死,于是我就找到了一个解决办法

大致模板如下:

import eventlet
eventlet.monkey_patch()

flag_TimeOut = True
with eventlet.Timeout(40, False):  # 设置超时时间为20秒
    qualified = Qua.getQualifiedRate(all_url)
    isPass = qualified.getPassRate()
    flag_TimeOut = False

if flag_TimeOut:
    print("程序超时!")

注意:主要就是导入eventlet这个模块,借助它来完成超时处理,具体的函数介绍可以去搜索下相关资料,这里主要提供一个方法。

python程序运行超过时长强制退出

python程序运行超过时长强制退出方式,防止程序卡死;

主要两种方式:

1、程序内部设置时长,超过退出

import datetime
import time

import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
import datetime
import time

t1 = time.time()
t1 = time.localtime(t1).tm_hour
print(t1)
while 1:
   if time.localtime(time.time()).tm_hour - t1<3:
       print("@@@@",time.localtime(time.time()).tm_hour)
   else:
       print("break")
       break
print("finsh")
import time
import eventlet#导入eventlet这个模块
eventlet.monkey_patch()#必须加这条代码
with eventlet.Timeout(2,False):#设置超时时间为2秒
  time.sleep(4)
  print('没有跳过这条输出')
print('跳过了输出')

func_timeout

from func_timeout import func_set_timeout

@func_set_timeout(5) # 设定函数执行时间
def task():
   print('开始运行!')
   time.sleep(6)
   return '执行成功,未超时'

try:

task()
excpet:
print("---")

2、程序外部控制,超过强制退出

通过jenkins插件build-timeout ,安装后重启生效https://updates.jenkins.io/latest/build-timeout.hpi

  • Absolute 多少分钟没有结束则执行动作

python如何解决指定代码段超时程序卡死

python如何解决指定代码段超时程序卡死

来源:https://blog.csdn.net/qq_30653631/article/details/106203915

标签:python,指定,代码段,程序卡死
0
投稿

猜你喜欢

  • python中利用xml.dom模块解析xml的方法教程

    2022-08-17 01:44:47
  • 实用技巧:优化SQL Server数据库查询方法

    2009-02-04 13:46:00
  • Python模块的制作方法实例分析

    2021-09-06 05:57:26
  • 完全卸载MYSQL

    2011-02-23 12:11:00
  • Python实现屏幕截图的代码及函数详解

    2023-06-19 11:30:29
  • Python中OpenCV实现查找轮廓的实例

    2023-12-05 05:26:24
  • pytorch训练神经网络爆内存的解决方案

    2023-07-06 01:46:24
  • Django城市信息查询功能的实现步骤

    2023-09-01 21:28:48
  • Python封装成可带参数的EXE安装包实例

    2023-05-19 04:50:17
  • js getElementsByTagName的简写方式

    2024-04-17 09:56:27
  • Python实现字典按照value进行排序的方法分析

    2022-11-03 04:27:27
  • 详解Go语言如何实现二叉树遍历

    2024-04-23 09:44:10
  • 详细讲解Access数据库远程连接的实用方法

    2008-11-28 16:34:00
  • Golang reflect反射的使用实例

    2024-05-05 09:32:17
  • Python 使用 pip 安装 matplotlib 模块的方法

    2021-08-22 02:42:52
  • 一个NumericStepper组件

    2010-01-22 15:46:00
  • django使用F方法更新一个对象多个对象字段的实现

    2021-07-20 10:38:42
  • Pyramid添加Middleware的方法实例

    2022-11-25 18:50:34
  • 缓存是如何实现的?

    2009-11-01 15:35:00
  • 用SQL语句生成带有小计合计的数据集脚本

    2009-01-06 11:33:00
  • asp之家 网络编程 m.aspxhome.com