128 APScheduler定時任務工具的使用

2021-09-24 21:43:31 字數 3850 閱讀 9437

apscheduler (advanceded python scheduler)是一款python開發的定時任務工具

文件位址 

特點:下單後30分鐘內必須支付,否則取消訂單,就可以借助此工具(每下一單就要新增此訂單的定時任務)

pip install apscheduler

from apscheduler.schedulers.background import backgroundscheduler

# 建立定時任務的排程器物件

scheduler = backgroundscheduler()

# 定義定時任務

def my_job(param1, param2):

pass

# 向排程器中新增定時任務

scheduler.add_job(my_job, 'date', args=[100, 'python'])

# 啟動定時任務排程器工作

scheduler.start()

負責管理定時任務

from apscheduler.schedulers.blocking import blockingscheduler

scheduler = blockingscheduler()

scheduler.start() # 此處程式會發生阻塞

from apscheduler.schedulers.background import backgroundscheduler

scheduler = backgroundscheduler()

scheduler.start() # 此處程式不會發生阻塞

在定時任務該執行時,以程序或執行緒方式執行任務

from apscheduler.executors.pool import threadpoolexecutor

threadpoolexecutor(max_workers)

threadpoolexecutor(20) # 最多20個執行緒同時執行

使用方法

executors = 

scheduler = backgroundscheduler(executors=executors)

from apscheduler.executors.pool import processpoolexecutor

processpoolexecutor(max_workers)

processpoolexecutor(5) # 最多5個程序同時執行

使用方法

executors = 

scheduler = backgroundscheduler(executors=executors)

指定定時任務執行的時機

from datetime import date

# 在2023年11月6日00:00:00執行

sched.add_job(my_job, 'date', run_date=date(2009, 11, 6))

# 在2023年11月6日16:30:05

sched.add_job(my_job, 'date', run_date=datetime(2009, 11, 6, 16, 30, 5))

sched.add_job(my_job, 'date', run_date='2009-11-06 16:30:05')

# 立即執行

sched.add_job(my_job, 'date')

sched.start()

from datetime import datetime

# 每兩小時執行一次

sched.add_job(job_function, 'interval', hours=2)

# 在2023年10月10日09:30:00 到2023年6月15日的時間內,每兩小時執行一次

sched.add_job(job_function, 'interval', hours=2, start_date='2010-10-10 09:30:00', end_date='2014-06-15 11:00:00')

# 在6、7、8、11、12月的第三個周五的00:00, 01:00, 02:00和03:00 執行

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

# 在2023年5月30日前的周一到周五的5:30執行

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

方法1

from apscheduler.schedulers.background import backgroundscheduler

from apscheduler.executors.pool import threadpoolexecutor

executors =

scheduler = backgroundscheduler(executors=executors)

from pytz import utc

from apscheduler.schedulers.background import backgroundscheduler

from apscheduler.jobstores.sqlalchemy import sqlalchemyjobstore

from apscheduler.executors.pool import processpoolexecutor

executors = ,

'processpool': processpoolexecutor(max_workers=5)

}scheduler = backgroundscheduler()

# .. 此處可以編寫其他**

# 使用configure方法進行配置

scheduler.configure(executors=executors)

scheduler.start()

方式1

job = scheduler.add_job(myfunc, 'interval', minutes=2)  # 新增任務

job.remove() # 刪除任務

job.pause() # 暫定任務

job.resume() # 恢復任務

方式2

scheduler.add_job(myfunc, 'interval', minutes=2, id='my_job_id')  # 新增任務    

scheduler.remove_job('my_job_id') # 刪除任務

scheduler.pause_job('my_job_id') # 暫定任務

scheduler.resume_job('my_job_id') # 恢復任務

job.modify(max_instances=6, name='alternate name')

scheduler.reschedule_job('my_job_id', trigger='cron', minute='*/5')

停止apscheduler執行

scheduler.shutdown()

apscheduler執行定時任務框架

最簡單用法 匯入模組 from apscheduler.schedulers.blocking import blockingscheduler from datetime import datetime 建立物件 scheduler blockingscheduler 建立定時任務 觸發器為 in...

使用apScheduler執行定時任務

從這篇博文可以了解到apscheduler的詳細解釋,也很簡潔優雅,改寫後可以直接用於生產環境!從這篇博文可以了解cron表示式的詳細解釋 coding utf 8 from apscheduler.schedulers.blocking import blockingscheduler impor...

APScheduler執行定時任務 簡單使用

本例目的 每天17 19 07列印 hello scheduler 版本3.3.1 tar zxvf 原始碼包名安裝 python setup.py installfrom apscheduler.schedulers.blocking import blockingscheduler schedu...