Nginx通过uwsgi发布Django项目导致Apscheduler计划任务不自动启动
说明
通过uwsgi启动Django项目,导致项目里面的计划任务不能跟随项目的启动自动运行,需要用户通过网页打开项目之后,计划任务才正常执行。
解决方式
原因是使用python manage.py runserver 0.0.0.0:80启动项目是通过manage.py进行驱动的,无论调用放置在哪个视图文件中,都会被调用,而使用uwsgi进行驱动后,不调用manage.py,导致无法启动计划任务。将计划任务的视图文件放置在wsgi.py文件,通过wsgi进行计划任务的调用,则解决了不能自动启动的问题。
备注
from Timer import Timer的调用代码一定要放置在application = get_wsgi_application()代码的下方,否则会导致项目异常,无法访问。
借鉴资料
二〇二〇年四月十五日 10:34:58
版权声明:
作者:龙魂
链接:https://blog.wlzs.cn/nginx%e9%80%9a%e8%bf%87uwsgi%e5%8f%91%e5%b8%83django%e9%a1%b9%e7%9b%ae%e5%af%bc%e8%87%b4apscheduler%e8%ae%a1%e5%88%92%e4%bb%bb%e5%8a%a1%e4%b8%8d%e8%87%aa%e5%8a%a8%e5%90%af%e5%8a%a8/
文章版权归作者所有,未经允许请勿转载。
THE END