Rails-приложение получает неправильные значения из Memcache - PullRequest
0 голосов
/ 02 октября 2018

У меня есть приложение Rails 4.2 за пассажиром 5.0.26 на apache 2.4.5.Я использую ruby ​​2.3.1 и dalli 2.7.8.Что-то странное происходит при извлечении данных из memcache с помощью этого вспомогательного метода:

def get_setting(name)
 cached = Rails.cache.fetch("settings-" + name + session[:id].to_s) do
  Setting.where(:name => name, :user_id => session[:id]).value
 end
 return cached
end

Если установлено значение 51234 для user1 и 1000 для user2, и я запрашиваю только user1 ...

get_setting ("setting_name") # => 51234, это нормально

, но иногда ...

get_setting ("setting_name") # => 1000

Я трижды проверил правильность имени и сессии [: id] (выгрузил все в development.log).Это происходит как в производстве, так и в разработке.

Я вижу, что другие сталкивались с этим, разве это не должно было быть решено в предыдущей версии драгоценного камня Далли?

Rails с Memcacheвозвращает неправильный кешированный объект?

memcache извлекает неправильные значения при использовании плагина act_as_cached

Я помню, что пробовал решения, упомянутые в этих вопросах, и получил ошибки.

Что я могу сделать, чтобы избавиться от этой очень неуловимой и раздражающей ошибки?

...