2015-10-21 2 views
0

У меня есть сайт, развернутый на Elastic Beanstalk - я написал некоторые данные в кеш памяти Django, а при его извлечении получаю два разных значения.Эластичный beanstalk/Django Cache с временным отображением неправильного значения

Мне кажется, что есть несколько экземпляров, но, глядя на панель управления, кажется, что только один веб-экземпляр работает прямо сейчас. i выводит значение в сообщении журнала, и я вижу, что существует несколько PID.

[Wed Oct 21 14:21:34.922493 2015] [:error] [pid 14335] WARNING:root:Cached: After tomorrow, Back to the Future will take place entirely in the past. 
[Wed Oct 21 14:21:35.133714 2015] [:error] [pid 14337] WARNING:root:Cached: Bacon and eggs is a day's work for a chicken and a lifetime achievement for a pig. 
[Wed Oct 21 14:21:35.319643 2015] [:error] [pid 14337] WARNING:root:Cached: Bacon and eggs is a day's work for a chicken and a lifetime achievement for a pig. 
[Wed Oct 21 14:21:35.521985 2015] [:error] [pid 14335] WARNING:root:Cached: After tomorrow, Back to the Future will take place entirely in the past. 
[Wed Oct 21 14:21:35.690560 2015] [:error] [pid 14336] WARNING:root:Cached: Bacon and eggs is a day's work for a chicken and a lifetime achievement for a pig. 

Кажется случайным образом переключаться между двумя значениями/величинами.

Уверен, что работает только один веб-узел - есть ли способ, которым несколько экземпляров приложения работают на одном узле?

ответ

1

У вас есть один экземпляр EC2 с одним веб-сервером (по умолчанию Apache). Однако Apache создаст более одного рабочего процесса, каждый из которых будет запускать отдельный экземпляр вашего приложения Django. Когда вы делаете запрос на свой сервер, любой из рабочих процессов может ответить на него, поэтому вы видите оба значения произвольно.

Если вам нужен один кэш в вашем приложении, вам будет лучше подойти к запуску Memcached или Redis локально (для одного узла EC2) или с помощью службы ElastiCache от Amazon.

Смежные вопросы