Python實現定時任務

2022-10-04 10:30:39 字數 1770 閱讀 9774

python下實現定時任務的方式有很多種方式。下面介紹幾種

迴圈sleep:

這是一種最簡單的方式,在迴圈裡放入要執行的任務,然後sleep一段時間再執行。缺點是,不容易控制,而且sleep是個阻程式設計客棧塞函式。

def timer(n):

'''''

每n秒執行一次

'''

while true:

print time.strftime('%y-%m-%d %x',time.lwww.cppcns.comocaltime())

yourtask() # 此處為要執行的任務

time.sleep(n)

threading的timer:

threading模組中的timer能夠幫助實現定時任務,而且是非阻塞的。

比如3秒後列印helloworld:

def printhello():

print "hello world"

timer(3, printhello).start()

比如每3秒列印一次helloworld:

def printhello():

print "hello world"

t = timer(2, printhello)

t.star

if __name__ == "__main__":

printhello()

使用sched模組:

sched是一種排程(延時處理機制)。

# -*- coding:utf-8 -*-

# use sched to timing

import time

import os

import sched

# 初始化sched模組的scheduler類

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

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

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

def execute_command(cmd, inc):

'''''

終端上顯示當前計算機的連線情況

'''

os.system(cmd)

schedule.enter(inc, 0, execute_command, (cmd, inc))

def mai程式設計客棧n(cmd, inc=60):

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

# 給該觸發函式的引數(tuple形式)

schedule.enter(0, 0, execute_command, (cmd, inc))

schedule.run()

# 每60秒檢視下網路連線情況

if __name__ == '__main__':

main("netsta -an", 60)

使用定時框架apscheduler:

apscheduler是基於quartz的乙個python定時任務框架。提供了基於日期、固定時間間隔以及crontab型別的任務,並且可以持久化任務。

這個現在還沒自己嘗試過,等過段時間用了再來補充。

使用windows的定時任務:

這裡可以將所需要的python程式打包成exe檔案,然後在windows下設定定時執行。

本文標題: python實現定時任務

本文位址:

Python實現定時任務

工作中可能需要週期性執行一些任務,俗稱定時任務。linux環境下,可以借助於系統自帶的crontab完成定時任務。但是很多時候,開發人員可能並沒有許可權去操作crontab。而schedule是python的輕量級定時任務解決方案,可以滿足常定時採集資料,定時執行指令碼程式等週期性任務需求。pip ...

Python定時任務實現

定時執行任務,定時 pip install schedule import schedule import time 不帶引數定時執行 def job print i m working.schedule.every 10 seconds.do job 每10秒執行一次 schedule.every...

python定時任務

說明 使用python內建的模組來實現,本篇部落格只是以迴圈定時來示範,其他的可以結合crontab的風格自己設定 一 導包 from apscheduler.schedulers.blocking import blockingscheduler二 普通函式的使用 1 interval模式,功能比...