timeout - 使用 ActiveMerchant 时如何处理超时?

标签 timeout activemerchant

有时,在本地开发时,我的连接会下降,虽然这希望不会在生产中发生,但它会引发一个问题,即当 ActiveMerchant 发送到支付网关(在我的情况下发送到 SagePay)时,我可能应该处理来自 ActiveMerchant 的超时。

我在文档中看不到执行此操作的方法,我想知道是否有最佳实践方法来处理此问题?

最佳答案

我相信这个问题与 AM 的 ruby​​ 实现有关(如果我错了,请纠正我)。

发生超时 ( link to source ) 时,

ActiveMerchant 引发 ActiveMerchant::ConnectionError。因此我们可以简单地处理异常。例如:

begin
  # Your ActiveMerchant staff here
rescue ActiveMerchant::ConnectionError => e
  # timeout handler
end

有时,在 SagePay 的情况下,使用 open_timeoutread_timeout 类属性 ( link to source ) 控制超时也很有用:

ActiveMerchant::SagePay.open_timeout = 5 # timeout for opening the connection is set to 5 seconds
ActiveMerchant::SagePay.read_timeout = 10 # timeout for reading from opened connection is set to 10

关于timeout - 使用 ActiveMerchant 时如何处理超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960214/

相关文章:

javascript - 在事件循环为空或超时后退出 Node.js 进程

java - Jersey 2.22 : What is the default connect timeout for Client?

ruby-on-rails - 如何在 Rails 中将 BN 代码与 Active Merchant 一起使用

ruby-on-rails - 将活跃的商家异地支付网关添加到 spree 商务中

ruby-on-rails - Paypal 定期付款状态

javascript - 如何防止 Google App Maker 应用超时

go - goroutines 和 Http 请求超时

Golang 超时不与 channel 一起执行

paypal - 如何使用 ActiveMerchant 和 PayPal Express 跳过订单确认页面

ruby-on-rails - 使用 ActiveMerchant 在 Paypal setExpressCheckout 中预填名字和姓氏