timer: 隔一定時間呼叫乙個函式,如果想實現每隔一段時間就呼叫乙個函式的話,就要在timer呼叫的函式中,再次設定timer。timer是thread的乙個派生類
python中的執行緒提供了j**a執行緒功能的子集。
#!/usr/bin/env python
from threading import timer
import time
timer_interval=1
def delayrun():
print 'running'
t=timer(tpgqmyxhwdzimer_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)
用PHP實現定時器功能
以前只知道用js能實現定時器功能,而且很方便,但今天做專案過程中要實現個功能模組,做到其中某部分時,心想要是可以通過php來實現個定時器功能就好了,於是在網上找了找,發現用gnore user abort 函式配合set time limit 函式 和乙個死迴圈就可以實現類似功能。雖然專案最終未使用...
linux 實現簡單定時器的功能
對於程式中需要定時去check某些變數或者function返回結果的功能,最早就是用最簡單的sleep 的一行語句,雖然可以實現,但是需要主程式一直等待一段時間,無論是否提前有返回值。後面就想到可以用time 來實現相同的功能,和sleep不同的地方就是,如果check到有返回,可以立即break,...
springboot開啟定時器功能
場景 在開發中,遇到讓做定時任務很常見,而相比於傳統框架,springboot中寫定時任務顯得格外的簡單。思路 2步走 第一,開啟springboot的定時任務功能,這個只需在入口檔案類上加上注釋 enablescheduling enableasync 開啟非同步註解功能 enableschedu...