Python如何实现定时器功能
作者:laozhang 时间:2023-04-13 23:19:28
Timer: 隔一定时间调用一个函数,如果想实现每隔一段时间就调用一个函数的话,就要在Timer调用的函数中,再次设置Timer。Timer是Thread的一个派生类
python中的线程提供了java线程功能的子集。
#!/usr/bin/env python
from threading import Timer
import time
timer_interval=1
def delayrun():
print 'running'
t=Timer(timer_interval,delayrun)
t.start()
while True:
time.sleep(0.1)
print 'main running'
t是一个Timer对象。delay一秒钟之后执行delayrun函数。
其中time.sleep函数是用来让主线程暂停一点时间再继续执行。
实例扩展:
Python3定时器任务代码
import time
import sys
import signal
import datetime
import threading
#定时器
def schedule_update():
t = threading.Timer(0, event_func)
t.setDaemon(True)
t.start()
#执行函数
def event_func():
now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(now_time)
exec_update()
#update_openvas_dbs_from_cache()
interval_time = delay_time()
t = threading.Timer(interval_time, event_func)
t.setDaemon(True)
t.start()
#取时间点
def delay_time():
# now time
now_time = datetime.datetime.now()
# tomorrow time
next_time = now_time + datetime.timedelta(days=+1)
next_year = next_time.date().year
next_month = next_time.date().month
next_day = next_time.date().day
# get tomorrow 00:00
next_time = datetime.datetime.strptime(str(next_year)+"-"+str(next_month)+"-"+str(next_day)+" 00:00:00", "%Y-%m-%d %H:%M:%S")
# get secondes
delay_time = (next_time - now_time).total_seconds()
return delay_time
def quit_sys(signum, frame):
sys.exit()
#接收C
if __name__ == "__main__":
try:
signal.signal(signal.SIGINT, quit_sys)
signal.signal(signal.SIGTERM, quit_sys)
schedule_update()
print("schedule_update server starting up...\nHit Ctrl-C to quit.\n")
while 1:
time.sleep(1)
except Exception as e:
print(e)
来源:https://www.py.cn/jishu/jichu/10436.html
标签:Python,定时器
0
投稿
猜你喜欢
JavaScript初级教程(第五课续)第1/3页
2024-04-17 10:10:07
Python实现的凯撒密码算法示例
2022-10-14 08:47:28
Python 6种基本变量操作技巧总结
2023-04-03 21:50:04
Git中使用.gitignore忽略文件的推送方式
2023-03-03 21:53:59
js 获取、清空input type="file"的值示例代码
2024-04-22 13:07:14
python数据分析实战指南之异常值处理
2023-04-19 21:02:18
python之mock模块基本使用方法详解
2022-03-05 03:10:33
在数据库中自动生成编号的实现方法分享
2011-11-03 16:55:24
python如何获取服务器硬件信息
2023-05-10 18:28:06
Windows下MySQL5.6查找my.ini配置文件的方法
2024-01-22 13:32:38
BootStrap给table表格的每一行添加一个按钮事件
2024-05-11 09:07:33
用Python写一个简易版弹球游戏
2022-02-14 04:03:55
如何彻底解决python NameError:name '__file__' is not defined
2023-01-29 03:57:12
如何利用pyinstaller打包Python程序为exe可执行文件
2023-11-08 08:01:39
Python二叉树的镜像转换实现方法示例
2023-09-28 18:36:35
chatGPT使用及注册过程中常见的一些错误解决方法(所有报错汇总)
2023-03-02 22:27:23
HTML在线编辑器任意设置字号大小
2007-08-29 19:55:00
不得不承认:韩国的 Web 设计很唯美
2009-05-13 13:26:00
MySQL多实例安装开机自启动服务配置过程
2024-01-14 14:32:17
Navigator sendBeacon页面关闭也能发送请求方法示例
2024-04-22 22:37:44