从今天下午开始,突然无法访问我的 spree 商店的后端。当我尝试访问后端中的任何页面(/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 2.3 开始,Spree Alerts 代码已被删除,因此您也可以升级到该版本以解决此问题。

关于ruby-on-rails - Spree - 尝试访问后端时超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32506292/

10-13 04:42