python定時任務

2021-09-10 12:18:04 字數 1955 閱讀 6589

說明:使用python內建的模組來實現,本篇部落格只是以迴圈定時來示範,其他的可以結合crontab的風格自己設定

一、導包

from apscheduler.schedulers.blocking import blockingscheduler
二、普通函式的使用

(1)interval模式,功能比較單一

sched = blockingscheduler()

@sched.scheduled_job('interval',seconds=5)

def crawl_job():

#五秒執行一次

print('test')

sched.start()

(2)linux或者unix常用的crontab模式,功能比較多

sched = blockingscheduler()

@sched.scheduled_job('cron',second='*/5')

def crawl_job():

#五秒執行一次

print('test')

sched.start()

(3)其他crontab的使用

sched = blockingscheduler()

@sched.scheduled_job('cron',second='*/5')

def crawl_job():

#五秒執行一次

print('test')

# # 表示2023年3月22日17時19分07秒執行該程式

# sched.add_job(crawl_job, 'cron', year=2017, month=3, day=22, hour=17, minute=19, second=7)

# # 表示任務在6,7,8,11,12月份的第三個星期五的00:00,01:00,02:00,03:00 執行該程式

# sched.add_job(crawl_job, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')

# # 表示從星期一到星期五5:30(am)直到2014-05-30 00:00:00

# sched.add_job(crawl_job(), 'cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2014-05-30')

# # 表示每5秒執行該程式一次,相當於interval 間隔排程中seconds = 5

# sched.add_job(crawl_job, 'cron', second='*/5')

sched.start()

說明:sched.add_job()和註解@sched.scheduled_job()功能類似

區別:個人發現註解再類 裡面不再支援,add_job()可以

三、類裡面

(1)第一種

class spider:

'''對於類來說只支援add_job不再支援註解的形式

'''def crawl_job(self):

print('mytest')

def start(self):

sched.add_job(self.crawl_job,'cron',second='*/5')

sched.start()

spider().start()

(2)第二種

class spider:

'''對於類來說只支援add_job不再支援註解的形式

'''def crawl_job(self):

print('mytest')

sched.add_job(spider().crawl_job,'cron',second='*/5')

python定時任務

原文 import schedule 2 import time 3 4 def test 5 print i m working.6 def test2 7 print i m working.in job2 8 9 每10分鐘執行一次job函式 10 schedule.every 10 minu...

Python 定時任務

在專案中,我們可能遇到有定時任務的需求。其一 定時執行任務。例如每天早上 8 點定時推送早報。其二 每隔乙個時間段就執行任務。比如 每隔乙個小時提醒自己起來走動走動,避免長時間坐著。今天,我跟大家分享下 python 定時任務的實現方法。請參考 python定時任務 上 python定時任務 下 第...

Python 定時任務

1 需求規定 每天16點的每分鐘的第20s定時執行乙個.py檔案,執行完時再休息3s。2 實現 1 schedule.py import datetime,os,time coding utf 8 def job interval,command while true now datetime.da...