Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何获取RestClient执行一个方法所花费的时间?_Ruby On Rails_Ruby_Ruby On Rails 3_Rest Client - Fatal编程技术网

Ruby on rails 如何获取RestClient执行一个方法所花费的时间?

Ruby on rails 如何获取RestClient执行一个方法所花费的时间?,ruby-on-rails,ruby,ruby-on-rails-3,rest-client,Ruby On Rails,Ruby,Ruby On Rails 3,Rest Client,我正在使用RestClient gem执行API请求。 我想知道执行该请求需要多少时间 responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type] responseObject.code 现在我如何获得执行时间。用于此目的 require "benchmark" time = Benchmark.measure do respons

我正在使用RestClient gem执行API请求。 我想知道执行该请求需要多少时间

responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type]
responseObject.code
现在我如何获得执行时间。

用于此目的

require "benchmark"

time = Benchmark.measure do
  responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type]     
end
以一种原始的方式:

beginning_time = Time.now
responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type]
end_time = Time.now
puts "Time elapsed #{(end_time - beginning_time)*1000} milliseconds"
用于该目的

require "benchmark"

time = Benchmark.measure do
  responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type]     
end
以一种原始的方式:

beginning_time = Time.now
responseObject = RestClient.post request_url,params[:request_body],:content_type => params[:content_type]
end_time = Time.now
puts "Time elapsed #{(end_time - beginning_time)*1000} milliseconds"
在这里可能有用

由于RestClient使用一个名为Request的类来执行所有api请求(请参阅源代码),所以可以在初始值设定项中将此代码段添加到rails项目中。只需在您的环境配置中添加config.debug\u rest\u client\u duration=true,它就可以工作了

class RestClient::Request

  class << self
    def execute_with_log_duration(args, &block)
      started = Time.now
      res = execute_without_log_duration(args, &block)
      Rails.logger.info "api call duration is: " + (Time.now - started).to_s + " seconds"
      return res
    end
    alias_method_chain :execute, :log_duration if Rails.application.config.debug_rest_client_duration
  end

end
在这里可能有用

由于RestClient使用一个名为Request的类来执行所有api请求(请参阅源代码),所以可以在初始值设定项中将此代码段添加到rails项目中。只需在您的环境配置中添加config.debug\u rest\u client\u duration=true,它就可以工作了

class RestClient::Request

  class << self
    def execute_with_log_duration(args, &block)
      started = Time.now
      res = execute_without_log_duration(args, &block)
      Rails.logger.info "api call duration is: " + (Time.now - started).to_s + " seconds"
      return res
    end
    alias_method_chain :execute, :log_duration if Rails.application.config.debug_rest_client_duration
  end

end