歡迎您光臨本站 註冊首頁

Python如何實現定時器功能

←手機掃碼閱讀     zmcjlove @ 2020-06-06 , reply:0

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... Hit Ctrl-C to quit. ")      while 1:        time.sleep(1)    except Exception as e:      print(e)

 

                       

   


[zmcjlove ] Python如何實現定時器功能已經有254次圍觀

http://coctec.com/docs/python/shhow-post-237230.html