python threading Timer 如何取消?

時間 2021-06-07 06:43:15

1樓:

deffun_timer

():logging

.info

("rebuild special timeline local cache by Timer"

)global

timer

global

timer_running

# do_something()

iftimer_running

:timer

.cancel

()# 這步可能不是必須的

timer

=threading

.Timer(5

,fun_timer

)timer

.start

()else

:timer

.cancel

()# 啟動時先載入一遍,防止取到空資料

rebuild_local_cache

()timer_running

=True

timer

=threading

.Timer(5

,fun_timer

)timer

.start

()old_sig_handler

=signal

.getsignal

(signal

.SIGINT

)def

_handler

(signum

,frame

):global

timer

global

timer_running

logging

.info

("receive sig: {}, cancel timer"

.format

(signum

))timer_running

=False

ifsignum

==signal

.SIGINT

:old_sig_handler

(signum

,frame

)# 收到訊號後取消定時器,shutdown gracefullysignal

.signal

(signal

.SIGINT

,_handler

)注意幾個要點:

cancel 貌似不支援跨執行緒,所以得用變數去標識程序是否結束。

註冊 SIGINT 的時候,把之前的 handler 記得儲存下來一塊執行,不然其他邏輯,例如 web 伺服器的時間迴圈退出就會出現問題 。

2樓:

呼叫Timer 的cancel()方法就可以了,

文件:17.1. threading - Thread-based parallelism - Python 3.6.0 documentation

rapper如何取藝名?

牛寶歇會吧 從比較代表性的歌裡面摘,比如馮笑微博名馮塔斯,他和ijapa合過天生瘋塔兒,說他和ijapa是兩個瘋塔兒,諧音馮塔斯 fac d12forever 傑杰傑夫 404紅花會彈殼,你也可以取乙個名字叫彈殼 Tan Qiao 來自404紅花會的彈殼,而你是來自121黃花菜的Tan Qiao。蹭...

如何分別理解佛法中見取與我語取 ?

取 Upadana 四取 欲取 執取物件的慾望 二。見取 執取於某些見解 邪見。三。戒禁取 執取於某些不合理的戒律或忌諱 四。我語取 執著自我,而起我見 我慢 樹長歪了,也可以說長斜了,塔歪了,說成斜塔,路不平,有斜坡,紙箱疊歪了,斜了。用 斜 來形容一切不正的,歪的物體,器具。用 邪 來形容不正的...

AirPods和華為flypods如何取捨?

鍊金術士 flypods音效還行但airpods還是略勝一籌加上flypods延時手勢感應速度不敢恭維還有一點,flypods手勢只有兩個功能,不能切歌和上一首個人感覺flypods手勢有點彆扭 僅代表個人感受 如果預算夠的話還是用airpods吧。 魯迅 瀉藥。表示不貶低任何產品,但是AirPod...