有时在本地开发时我的连接会丢失,虽然这有希望不会在生产中发生,但它会引发一个问题,我应该处理从ActiveMerchant到支付网关的超时时间,在我的情况下是SagePay。
我无法在文档中看到这样做的方法,我想知道是否有最佳实践方法来处理这个问题?
答案 0 :(得分:0)
我认为这个问题与AM的ruby实现有关(请纠正我,如果我错了,请)。
超时发生时,{p>ActiveMerchant
会引发ActiveMerchant::ConnectionError
(link to source)。因此我们可以简单地处理异常。 e.g:
begin
# Your ActiveMerchant staff here
rescue ActiveMerchant::ConnectionError => e
# timeout handler
end
有时,在open_timeout
的情况下,使用read_timeout
和SagePay
类属性(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