我最近在Heroku上使用我的应用程序遇到此错误。发现了这一点:
My::Application.config.session_store :redis_session_store, {
# ... other options ...
on_redis_down: ->(e, env, sid) { do_something_will_ya!(e) }
redis: {
# ... redis options ...
}
}
在gem github页面上。所以我的问题是,我在这个块中传递了什么,以及如何将错误传达给用户。一般来说,这是怎么做的?
我是否提出异常,而不是在我的应用程序控制器中捕获它并执行某些操作或?我真的不知道该怎么做。
答案 0 :(得分:0)
为了处理错误,您有一些基于您的架构的选择。
首先,最重要的是确保记录问题,以便追踪罪魁祸首。
其次,我不确定你使用redis。但是,如果您的网站需要redis才能运行,那么您实际上已经失败了,应该将其传达给您的用户以及您的支持/运营/开发/自我。
如果你使用redis作为缓存机制,但可以从数据库中读取,那么对于这种情况来说这是一个相当简单的修复,但听起来这听起来不是你的情况。
修正错误: 通常,对于redis超时错误或任何超时错误,它表示更大的问题。例如,您是否向redis发送了大量单独的命令,而不是批量处理命令?
您可以执行重试机制,但是在超时错误上,通常意味着如果用户是与UI /接口相关的操作,您的网站将不会响应用户。