问题一:如何在Django服务开始时启动定时任务
在Django中准备使用APscheduler,最开始在wsgi模块里面开始一个
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
让Django在服务启动的时候就能产生scheduler这个服务。。
可是后来在业务模块已经写好了要调用的定时的api和scheduler.start()后,没有什么反应。直到后来,在urls.py这个模块里面要导入业务模块
才实现定时任务!
总结以往经验来猜想一下:Django服务启动第一步就是去加载wsgi这个模块,之后就开始去加载urls这个模块了。至于是否正确,只能以后再去研究,官网上也没有好好找!
问题二:如何添加apscheduler的job到数据库里
最开始在配置的时候,我以为不能用msyql存储任务,后来发现 jobstores 中的SQLAlchemyJobStore 就可以实现,不仅仅是mysql,sqlite3也是共用这一套,
而且在配置的时候要注意怎么配(源码里面有详情):
'default':SQLAlchemyJobStore(url='mysql://root:root123@127.0.0.1:3306/djangomysql'