APScheduler實現定時任務--第二波
阿新 • • 發佈:2022-12-07
redis持久化
https://www.cnblogs.com/zhufanyu/p/14011317.html
import time ## 配置redis模組 from apscheduler.jobstores.redis import RedisJobStore ## 配置執行緒 from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor ## 建立定時任務的包 from apscheduler.schedulers.background import BackgroundScheduler def job(): # requests.get("http://127.0.0.1:8000/api/checkrequest/") print("測試") def job_b(): # 暫停id為a的任務 scheduler.pause_job(job_id = 'a') for i in range(4): print(i) time.sleep(1) # 恢復id為a的任務 scheduler.resume_job(job_id = 'a') if __name__ == "__main__": REDIS = { 'host': '127.0.0.1', 'port': '6379', 'db': 0, 'password': '' } jobstores = { 'redis': RedisJobStore(**REDIS) } executors = { 'default': ThreadPoolExecutor(10), # 預設執行緒數 'processpool': ProcessPoolExecutor(3) # 預設程序 } scheduler=BackgroundScheduler(jobstores=jobstores, executors=executors) scheduler.add_job(func=job, trigger='interval', jobstore='redis', seconds=1, id="a", coalesce=True, replace_existing=True,name="3333") scheduler.add_job(func=job_b, trigger='interval', jobstore='redis', seconds=10, id="2", coalesce=True, replace_existing=True, name="4444") scheduler.start() # 檢視待執行的任務 print(scheduler.get_jobs()) time.sleep(30)