2017-04-25 1 views
0

私はApache2とWSGIでdjangoアプリケーションを実行しています。 PyCharmを私の開発用IDEとして使用しています。Django:WSGI、apps.populateを実行すると低速ですが、時折しか実行されません

私は以下のwsgiのpythonモジュールを持っていて、application = get_wsgi_application()の後にprintステートメントを追加しました。ログを見るとき、このプロセスには約1秒かかります。混乱しているのは、これが引き起こされるときです。私は単純なテキスト出力を送るページを持っています。私はリフレッシュを数回繰り返し、このプリントは一度ログに書き込まれます。私が数秒待つと、次のページリクエストで書き込まれます。私が連続してリフレッシュすると、再びある期間待つまでそれはしません。

私の呼び出しと応答は約10ミリ秒ですが、これが実行されると(ログの印刷で確認されると)約1秒かかります。これは私のサーバーに膨大な量の不必要な負荷を加え、処理速度を落としています。私はそれをdjango.setup()メソッドで呼び出されるapps.populate(settings.INSTALLED_APPS)に絞り込んだ。これが頻繁に実行されないようにする方法がありますか?

ご指導ありがとうございました。アドバイスをいただきありがとうございました。

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)) 

settings.INSTALLED_APPS:

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 

答えて

0

私が使っていたPyCharm IDEとファイルをリアルタイムで保存していたときに、各保存は再コンパイルを促し、このログが表示されます。私はそれを閉じ、テストを再開し、すべては問題ありません。 Apache2をリロードするときにのみ、この関数を記録します。

関連する問題