设置API连接响应超时

时间:2018-08-25 11:33:00

标签: ruby-on-rails timeout

Rails控制器操作具有一个条件,当满足该条件时,它会连接到API

Class GuestController
  if @book.quantity - @book.guests.count == 0
     call_book_api

现在,此特定呼叫应具有与其他呼叫不同的响应时间。需要为call_book_api方法对某些数据(正数或负数)的响应设置超时。

@result = HTTParty.post(
  'https://test.co.uk/interface/Book', 
  :body => JSON.parse(@book).to_json,
  headers: {
    'Content-Type' => 'application/json', 
    'Accept' => 'application/json',
    'Host' => 'test.co.uk',
    'Connection' => 'Keep-Alive'
  }
)    

如何在操作级别进行有效定义?

1 个答案:

答案 0 :(得分:1)

根据帖子中提到的描述,您希望在使用httparty gem调用第三方API时设置超时时间。

如果是get请求,请使用下面提到的代码

 response = HTTParty.get('YOUR_URL', timeout: 10)

如果它是请求的发布类型,则使用下面提到的代码:

 response = HTTParty.post('YOUR_URL', body: params, timeout: 10)