Apscheduler简介
Apscheduler我就不过多赘述了。如果你还不太了解Apscheduler,请参考如下链接:
应用场景示例
话不多说,如下场景:
需要清理某个数据库的数据,保留半年数据,最好在周末自动执行。
使用Apscheduler则可以完美解决该问题。
使用mongodb管理定时任务
def get_scheduler():
"""mongodb存储job,返回任务调度器"""
scheduler = BackgroundScheduler()
client = MongoClient(host=configs.MONGO_HOST, port=configs.MONGO_PORT)
# collection为存储定时任务的文档(表),database为数据库
store = MongoDBJobStore(collection='scheduler_job', database='admin', client=client)
scheduler.add_jobstore(store)
# scheduler.add_job(job, 'interval', seconds=5, id=str(time.time()))
return scheduler
使用
def schedule_clear_db():
"""定时任务清除数据库"""
# 每周末晚上2点半删除过期数据(6个月之前的数据,这里的id对应mongodb中的_id