Nginx通过uwsgi发布Django项目导致Apscheduler计划任务不自动启动

说明

通过uwsgi启动Django项目,导致项目里面的计划任务不能跟随项目的启动自动运行,需要用户通过网页打开项目之后,计划任务才正常执行。

解决方式

原因是使用python manage.py runserver 0.0.0.0:80启动项目是通过manage.py进行驱动的,无论调用放置在哪个视图文件中,都会被调用,而使用uwsgi进行驱动后,不调用manage.py,导致无法启动计划任务。将计划任务的视图文件放置在wsgi.py文件,通过wsgi进行计划任务的调用,则解决了不能自动启动的问题。

image

备注

from Timer import Timer的调用代码一定要放置在application = get_wsgi_application()代码的下方,否则会导致项目异常,无法访问。

借鉴资料

uwsgi托管Django掉进去的那些坑

二〇二〇年四月十五日 10:34:58

THE END