メインのバックエンドとして PostgreSQL を使用する Django プロジェクトがあります。
settings.py
DATABASES = {
'default': {
# Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3, 'oracle'.
'ENGINE': 'django.db.backends.postgresql_psycopg2',
...
},
}
しかし、アプリケーションで MongoDB へのカスタム接続も行っています。
mongo_connection.py
from pymongo import Connection
from pymongo.errors import ConnectionFailure
from django.db import connections
try:
connection = Connection(host="127.0.0.1", port=27017)
db = connection[db_name]
print "Connected successfully(Mongo, %s)" % (db_name,)
except ConnectionFailure, e:
sys.stderr.write("Could not connect to MongoDB: %s" % e)
sys.exit(1)
実稼働サーバーで、Apache の error.log で 1 つのことに気付きました。
[Wed May 23 05:05:39 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 05:07:16 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 06:41:51 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 06:42:21 2012] [error] Connected successfully(Mongo, galio)
...
[Wed May 23 19:26:45 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 19:26:48 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 22:20:44 2012] [error] Connected successfully(Mongo, galio)
[Wed May 23 22:20:48 2012] [error] Connected successfully(Mongo, galio)
[Thu May 24 00:12:45 2012] [error] Connected successfully(Mongo, galio)
これは、Apache が時々モジュールを再インポートすることを意味します (私は正しいですか?)。2 つの質問があります。
1) この動作は本番サーバーでは正常ですか? 2) カスタム接続を配置するのに最適な場所はどこですか? このコードをsettings.pyに移動する必要がありますか?
PS アパッチ構成
/etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin it@asdf.as
ServerName ...
ServerAlias ...
DocumentRoot /var/www/
LogLevel warn
WSGIDaemonProcess www-data processes=2 maximum-requests=500 threads=1
WSGIProcessGroup www-data
WSGIScriptAlias / /home/disk/galio/galio/apache/django.wsgi
Alias /media /var/www/media/
</VirtualHost>