Python3 如何实现定时器任务代码
使用threading写的一个定时器任务demo
- 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)
解压密码: detechn或detechn.com
免责声明
本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。