Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

195
Vistas
Django: WSGI, lento al ejecutar apps.populate, solo se ejecuta ocasionalmente

Tengo una aplicación Django ejecutándose en Apache2 y WSGI. Uso PyCharm como mi IDE para el desarrollo.

Tengo el módulo wsgi python a continuación y agregué una declaración de impresión después de application = get_wsgi_application() . Al ver los registros, este proceso tarda aproximadamente 1 segundo. Lo que es confuso, es cuando esto se activa. Tengo una página que envía una salida de texto simple. Presiono actualizar un montón de veces, y esta impresión se escribe en el registro una vez. Si espero unos segundos, se escribe en la siguiente solicitud de página. Si actualizo sucesivamente, no lo hace hasta que espero un período nuevamente.

Mi llamada y respuesta es de unos 10 milisegundos, pero cuando se ejecuta (como se verifica por la impresión en el registro) se tarda alrededor de un segundo. Esto está agregando una enorme cantidad de carga innecesaria a mi servidor y ralentizando las cosas. Lo tengo reducido a apps.populate(settings.INSTALLED_APPS) que se llama en el método django.setup() . ¿Hay alguna manera de evitar que esto se ejecute con tanta frecuencia o hacer que se ejecute más rápido?

Gracias por cualquier orientación o consejo que pueda ofrecer para resolver esto o prevenirlo.

wsgi.py:

 import datetime import os import sys from django.core.wsgi import get_wsgi_application root_path = os.path.abspath(os.path.split(__file__)[0]) sys.path.insert(0, os.path.join(root_path, 'project_name')) sys.path.insert(0, root_path) path = '/var/www/project' if path not in sys.path: sys.path.append(path) os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') start = datetime.datetime.now() application = get_wsgi_application() print('Time to Populate: ' + str(datetime.datetime.now() - start))

configuración.APLICACIONES_INSTALADAS:

 INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.admin', 'report_builder', # Third-party tool 'business', # Internal app 'slab', # Internal app 'file', # Internal app 'training_topic', # Internal app 'item', # Internal app 'person', # Internal app 'employee', # Internal app 'school', # Internal app 'training', # Internal app 'services', # Internal app 'incident', # Internal app 'report', # Internal app 'notice', # Internal app 'county_notification', # Internal app 'utilities.fax', # Internal app 'log', # Internal app 'helptext', # Internal app 'search', # Internal app 'compensation', # Internal app 'data_export', # Internal app 'record_review', # Internal app )

/var/log/apache2/error.log:

 [Tue Apr 25 14:07:22.917665 2017] [wsgi:error] [pid 21810] Time to Populate: 0:00:00.826958 [Tue Apr 25 14:07:34.715745 2017] [wsgi:error] [pid 21817] Time to Populate: 0:00:00.822580
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Estaba usando PyCharm IDE y estaba guardando los archivos en tiempo real, cada guardado solicitaría una recompilación y aparecía este registro. Lo cerré y volví a ejecutar las pruebas y todo está bien. Solo registra esta función cuando recargo Apache2.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda