写了一个分析大数据的python程序,由于要分析的数据量可能会很大,有时运行的时间会很长。服务器上的设置是有进程运行超过10分钟会自动Kill该进程,所以我希望我的程序在运行到9分50秒的时候可以Print一条警报“Warning: Timeout”。
请问需要如何修改程序才能达到此目的,能否只在程序头尾添加语句而不改变程序内部结构?
以下面一个无线循环的Loop为例,如何修改能让它在10秒后打印一条警报?
def func(a,b):
while True:
a=a+b
print a
func(1,2)
用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:
import threading
import time
def change_user():
print('这是中断,切换账号')
t = threading.Timer(3, change_user)
t.start()
#每过3秒切换一次账号
t = threading.Timer(3, change_user)
t.start()
while True:
print('我在爬数据')
time.sleep(1)
扩展资料
有时当一个条件成立的情况下,需要终止程序,可以使用sys.exit()退出程序。sys.exit()会引发一个异常:
1、如果这个异常没有被捕获,那么python编译器将会退出,后面的程序将不会执行。
2、如果这个异常被捕获(try...except...finally),捕获这个异常可以做一些额外的清理工作,后面的程序还会继续执行。
注:0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。另一种终止程序的方法os._exit()
一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()
采用sys.exit(0)正常终止程序,程序终止后shell运行不受影响。
采用os._exit(0)关闭整个shell,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。
多谢。方法是很简洁,但是有一个小问题啊。
我给的这个例子里func的功能很简单,只有a=a+b这样简单的计算。如果function里的计算量会很大。如果只在循环开头判定时间的话,如果在某次循环内就达到时间上线的话,来不及进行下一次循环判定时间就会被服务器Kill了,这样会答应不了警报信息哦。请问有没有办法实时监控时间呢?比如每秒判定一次时间,类似于独立于主程序之外再创建一个监控时间的进程。有办法实现吗。。。
你说的我考虑过,但是情况都一样的,怎么样都要消耗资源,只要你去计算时间。
有比较好的方法就是:再建立一个进程,单独的在主程序运行时他运行,然后他只做计时,10秒后在print。但这样的方法比较复杂。
另外:如果从解决问题角度出发的话,有很多的办法啊,可以同时执行2个程序,一个是主程序,一个是只做计时等待警告程序,可以用批处理。
python warn.py
python main.py
做成bat就行了。相对而言等待程序消耗资源很少。也可以直接用批处理去等待,效率更高
请问我的那段代码应该放在什么位置?我对编程还是门外汉。。。。
Python中如何在一段时间后停止程序
用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:import threading import time def change_user():print('这是中断,切换账号')t = threading.Timer(3, change_user)t.start()每过3秒切换一次账号 t = threading.Timer(3, change_user)t.start(...
python中的sleep函数
要使用sleep函数,首先需要导入Python的time模块。然后,通过调用time模块中的sleep函数,并传入一个参数,来实现程序的暂停。例如:`time.sleep`,这将使程序暂停执行5秒。需要注意的是,这个时间是以浮点数表示的,所以你可以传入小数来暂停更精确的时间段。三、sleep函数的实际应用场景 在实际编程过程中...
python如何结束程序运行
方法1:采用sys.exit(0),正常终止程序,从图中可以看到,程序终止后shell运行不受影响。相关推荐:《Python教程》方法2:采用os._exit(0)关闭整个shell,从图中看到,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。方法3:采用Ctrl+C快捷键,强制终止程序执行,可以看到,程序由“KeyboardIn...
怎样让python运行完了不直接退出?
通过调用time.sleep函数,可以让程序暂停指定的时间。例如,在程序最后加上`time.sleep`,程序会在运行结束后暂停10秒钟,然后自动退出。这种方式适合于不需要用户交互,但需要程序运行完成后延迟退出的场景。需要注意的是,要使用time模块,需要在程序开头导入该模块,如`import time`。通过后台运行的方式 ...
批处理文件如何隔一段时间让自身关闭?
比如说原批处理为: @echo off python.exe -a 把它改为: @echo off set timeout=10000 rem 设置超时时间为10000毫秒 echo wscript.sleep %timeout%>sl.vbs start python -a cscript \/\/nologo sl.vbs taskkill \/f \/im python.exe 这样,超时后,程序python.exe就会被强制结束 ...
详解python中break语句的用法
Python中的break语句主要用于终止循环,包括for循环和while循环。当程序执行到break语句时,会立即跳出当前循环,不再继续执行后续循环内容。具体用法可以分为以下几种情况:一、用于循环中终止循环 当我们在循环过程中遇到某个条件,需要立即终止循环时,可以使用break语句。例如:在遍历一个列表时,如果找到...
python程序如何让其暂停
1、input();这种方法不用包含模块,因此这也是最常用的一种暂停手段。Python2中的raw_input()和input()语句在Python3中已经被合并到input()中。2、os.system("pause");这种方法需要包含os模块(import os),在windows下IDLE运行会弹出cmd命令行,进行暂停操作,直接运行.py文件会直接在命令行中暂停...
python里怎么终止程序的执行
quit() exit()执行到此命令时,程序终止。如果是程序陷入死循环,想强制结束,则按Ctrl + C。这个特别关键。Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好...
Python 中的断点类型详解
在代码中设置断点时,需要导入pdb模块,然后在需要断点的位置调用pdb.set_trace()函数。当程序执行到pdb.set_trace()处时,会进入交互式调试模式。在调试模式中,可以使用一系列命令来检查变量、执行代码和探查程序状态。IPython魔术命令在交互式Python环境中特别有用。例如,使用%debug命令可以进入交互式...
python进程运行多少时间自动退出
Python中如何在一段时间后停止程序用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:importthreading importtime defchange_user():?print('这是中断,切换账号')?t=threading.Timer(3,change_user)?t.start()每过3秒切换一次账号 t=threading.Timer(3...