以下のようにsettings.pyのCHANNEL_LAYERSのBACKENDにchannels.layers.InMemoryChannelLayerを設定した場合、各プロセスを個別のlayerとして操作するため、マルチインスタンス環境では推奨されず、ローカル環境等でのみ使用が推奨されているらしいのですが、これがいまいち理解できません。
python
1CHANNEL_LAYERS = { 2 "default": { 3 "BACKEND": "channels.layers.InMemoryChannelLayer" 4 } 5}
まず、本番環境(マルチインスタンス環境?)とローカル環境でサーバープロセスはどう違うのですか?
例えば、ローカル環境において、プラウザを二つ起動しアクセスした場合はマルチインスタンス環境にならないのでしょうか?
ご教授お願いします。
参考にしたドキュメントに書いてあった文章↓
Channels also comes packaged with an in-memory Channels Layer. This layer can be helpful in for Testing or local-development purposes:
Do Not Use In Production
In-memory channel layers operate with each process as a separate layer. This means that no cross-process messaging is possible. As the core value of channel layers is to provide distributed messaging, in-memory usage will result in sub-optimal performance, and ultimately data-loss in a multi-instance environment.
あなたの回答
tips
プレビュー