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...