記錄下python中使用定時器的幾種方法

2021-10-01 02:03:48 字數 1820 閱讀 2146

from datetime import datetime

import time

# 每n秒執行一次

deftimer

(n):

while

true

:print

(datetime.now(

).strftime(

"%y-%m-%d %h:%m:%s"))

time.sleep(n)

timer(

5)

from datetime import datetime

from threading import timer

# 列印時間函式

defprint_time

(inc)

:print

(datetime.now(

).strftime(

"%y-%m-%d %h:%m:%s"))

""" timer的引數說明

inc:表示時間間隔

print_time:執行的函式

(inc,):傳遞給執行函式的引數

"""t = timer(inc, print_time,

(inc,))

t.start(

)print_time(

2)

import time

import sched

from datetime import datetime

# 初始化 sched 模組的 scheduler 類

# 第乙個引數是乙個可以返回時間戳的函式,第二個引數可以在定時未到達之前阻塞。

schedule = sched.scheduler(time.time, time.sleep)

# 被週期性排程觸發的函式

defprint_time

(inc)

:print

(datetime.now(

).strftime(

"%y-%m-%d %h:%m:%s"))

schedule.enter(inc,

0, print_time,

(inc,))

# 預設引數 60 s

defstart

(inc=60)

:# enter四個引數分別為:間隔事件、優先順序(用於同時間到達的兩個事件同時執行時定序)、被呼叫觸發的函式、給觸發函式的引數(tuple形式)

schedule.enter(0,

0, print_time,

(inc,))

schedule.run(

)if __name__ ==

"__main__"

: start(

10)

from apscheduler.schedulers.blocking import blockingscheduler

from datetime import datetime

defjob()

:print

(datetime.now(

).strftime(

'%y-%m-%d %h:%m:%s'))

if __name__ ==

"__main__"

: scheduler = blockingscheduler(

) scheduler.add_job(job,

'interval'

, seconds=5)

scheduler.start(

)

linux中使用定時器

1.使用14號訊號sigalrm,呼叫alarm函式 include include include include include void handle int signum int main int argc,const char argv return 0 每隔3秒向自身傳送乙個sigalr...

Springboot中使用定時器

1 在入口類中加入 enablescheduling註解 enablescheduling public static void main string args throws exception 2 建立定時器類,類中的方法註解了 scheduled就是乙個定時器 方式一 component pu...

Dorado中使用定時器

本篇主要介紹在dorado中如何使用定時器。1.先實現initializingbean介面,為billjobpr類新增定時任務,quartzmanager只是個工具類,下面也提供了addjob方法。component public class initservlet implements initi...