Django APPS.PY被Apache2忽略

问题描述

apps.py中有一个函数设置为在Apache引导/重新启动时运行,但是没有,它只能在我打开索引页面后才能工作。

但是,如果我使用Django的开发环境,它会完美运行。

APPS.PY

from django.apps import AppConfig

class GpioAppConfig(AppConfig):
  name = 'gpio_app'

  verbose_name = "My Application"
  def ready(self):
    from apscheduler.schedulers.background import BackgroundScheduler
    from gpio_app.models import Status,ApsScheduler
    import gpio_app.scheduler as sched
    import logging

    logging.basicConfig()
    logging.getLogger('apscheduler').setLevel(logging.DEBUG)

    sched.cancel_day_schedule()
    sched.get_schedule()
    sched.daily_sched_update()
    sched.add_status_db()

MOD_WSIG 000-default.conf如下:

<VirtualHost *:80>

    ServerName 127.0.0.1
    ServerAlias localhost

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /robots.txt /path/to/mysite.com/static/robots.txt
    Alias /favicon.ico /path/to/mysite.com/static/favicon.ico

    Alias /static /home/pi/poolprojectdir/static
    
    <Directory /home/pi/poolprojectdir/static>
    Require all granted
    </Directory>

    <Directory /home/pi/poolprojectdir/poolproject>
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>

    WsgiDaemonProcess poolproject python-     home=/home/pi/poolprojectdir/venv python-path=/home/pi/poolprojectdir
WsgiProcessGroup poolproject
WsgiScriptAlias / /home/pi/poolprojectdir/poolproject/wsgi.py

关于我如何让Apache2识别apps.py的任何想法?

解决方法

问题在于apache只能在第一个请求到达后才懒加载wsgi.py。

有关解决方法,请参见this answer