我有一个在heroku上运行的sinatra应用程序,它使用dalli来启用memcached支持。有时候,memcached服务器无法响应,我得到以下结果:

Dalli::RingError - No server available

处理这种情况的最佳方法是什么?

最佳答案

我选择通过显式忽略这个错误来处理这个问题,因为如果缓存组件关闭,我的应用程序功能就不会失败。你当然可以实现一个log语句或者任何你想要的东西,但是我选择什么都不做。
我创建了自己的缓存类,并使用它将我的域代码与dalli隔离开来。以下是相关部分:

def Cache.get(key)
  Configuration.dalliClient.get(key)
rescue Dalli::RingError
  nil
end

09-07 04:04