Ошибка сломанного канала в rails с memcached
-
22-09-2019 - |
Вопрос
Я продолжаю сталкиваться с этой ошибкой Ошибка MemCacheError (Сломанная труба):Сломанная труба в моем приложении Rails, и я не могу понять почему.
Когда я получаю доступ к memcached через Rails.cache
в моем контроллере первые 1 или 2 операции чтения / записи, похоже, всегда выдают ошибку неработающего канала.Но когда я получаю доступ к memcached путем создания нового объекта, ActiveSupport::Cache::MemCacheStore.new
, Кажется, я не получаю эту ошибку.
Я также получаю доступ к memcached в другом процессе ruby, и при первом чтении всегда возникает эта ошибка, независимо от способа доступа к memcached.Я действительно реализовал обходной путь, просто повторив попытку чтения, но я предпочел бы иметь лучшее долгосрочное решение.
В настоящее время я вижу эту проблему только после перезапуска memcached.Я использую Rails 2.3.5 и memcached 1.4.4 (я также пробовал это с memcached 1.2.2).
Решение
Я полагаю, что эта ошибка возникает при перезапуске memcached, когда приложение rails все еще запущено.Если вы перезапустите mongrel или приложение rails в passenger после перезапуска memcached, вы не должны увидеть эту проблему.