python3定时器

Python09

python3定时器,第1张

在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:

一秒后输出 Hello Timer!

oneshot的定时器这样就可以实现。

如果要实现cycle的定时器,则可以:

1s后定时器启动后,将再次以5.5s为间隔周期性执行回调fun_timer函数

结果是:

在使用Python定时器时需要注意:

1.定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名,第一个参数表示多长时间后调用后面第二个参数指明的函数。第二个参数注意是函数对象,进行参数传递,用函数名(如fun_timer)表示该对象,不能写成函数执行语句fun_timer(),不然会报错。

2.定时器间隔单位是秒,可以是浮点数,如5.5,0.02等,在执行函数fun_timer内部和外部中给的值可以不同。如上例中第一次执行fun_timer是1秒后,后面的都是5.5秒后执行。

3.可以使用cancel停止定时器的工作

用到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)。

大概看了看网上关于定时器的使用,里面有各种模块的使用,感觉写的五花八门。

自己都尝试了一遍,有能单独用的也有不是我想要的,索性自己定义一个,查阅到datatime函数正好符合我的需要。

程序流程:

1.设定工作开始和结束时间(24小时制)

2.获取当前时间: timestamp = datetime.datetime.now().time()

3.判断获取的当前时间是否在设定的时间内,定义DoWork函数工作

4.若不在则不工作

使用流程:

1.判断是否在定义工作允许运行期间(由于返回是不工作故需要设定休息时间)

2.设定休息时间,time.sleep按秒计算