zoukankan      html  css  js  c++  java
  • 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...
    Hit Ctrl-C to quit.
    ")
            while 1:
                time.sleep(1)
        except  Exception as e:
            print(e)
  • 相关阅读:
    如何制定一周工作计划
    如何评估工作offer(1)
    Iraq shoethrower inspires Web games
    数据加密技术
    数字签名技术原理
    [转载]CSS使用技巧大全
    数字签名介绍
    数字签名原理剖析
    6个有用的MySQL语句
    PGP概述及原理
  • 原文地址:https://www.cnblogs.com/frisk/p/11568264.html
Copyright © 2011-2022 走看看