从今天下午开始,访问我的疯狂商店的后端突然不可用。当我尝试访问任何页面后端(/admin/users,/admin/orders等)页面只是加载很长一段时间,直到超时,我得到一般的错误页面。
当我查看日志时,我总是看到:
Processing by Spree::Admin::OrdersController#index as HTML
Completed 500 Internal Server Error in 127259ms
** [Airbrake] Success: Net::HTTPOK
Errno::ETIMEDOUT (Connection timed out - connect(2)):
app/middleware/flash_session_cookie_middleware.rb:18:in `call'
或
Processing by Spree::Admin::OrdersController#index as HTML
Completed 500 Internal Server Error in 127520ms
** [Airbrake] Success: Net::HTTPOK
SocketError (getaddrinfo: Name or service not known):
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
这在最后一次部署到生产环境之后开始发生,它只更改了图像和样式表。我不能在本地重现错误,尽管有相同的代码和生产数据库的精确副本。我使用的是Spree 2.0.3版
在控制台中运行Spree::Config[:check_for_spree_alerts] = false
来修复此问题。您可能还想将这一行添加到initializers/spree.rb
中,以确保将来不会重新启用check_for_spree_alerts
。
发生这种情况是因为Spree Alerts网站已停止使用。参见:https://github.com/spree/spree/pull/6516
具体来说,发生这种情况是因为当登录到后端时,Spree 2.0。x检查来自Spree网站的任何警报https://github.com/spree/spree/blob/2-0-stable/backend/app/controllers/spree/admin/base_controller.rb#L39,然后调用alert.rb:14
:
HTTParty.get('http://alerts.spreecommerce.com/alerts.json', query: params).parsed_response
目前,alerts.spreecommerce.com
已经停止并且超时,这解释了您收到的错误。
Spree警报代码已从Spree 2.3中删除,因此您也可以升级到该版本来解决此问题。