python 定時任務 from apscheduler.schedulers.blocking import BlockingScheduler

說明:使用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')

# # 表示2017年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')
————————————————
版權聲明:本文爲CSDN博主「Mr夏先生」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ryuhfxz/article/details/86739477

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章