class ZuoraConnect::AppInstanceBase
def refresh(session = nil)
def refresh(session = nil) refresh_count ||= 0 error_type = "" start = Time.now response = HTTParty.get(ZuoraConnect.configuration.url + "/api/#{self.api_version}/tools/tasks/#{self.id}.json",:body => {:access_token => self.access_token}) response_time = Time.now - start Rails.logger.debug("[#{self.id}] REFRESH TASK - Connect Task Info Request Time #{response_time.round(2).to_s}") if response.code == 200 build_task(JSON.parse(response.body), session) @last_refresh = Time.now.to_i self.cache_app_instance self.reset_mark_for_refresh else Rails.logger.fatal("[#{self.id}] REFRESH TASK - Failed Code #{response.code}") raise ZuoraConnect::Exceptions::ConnectCommunicationError.new("Error Communicating with Connect", response.body, response.code) end rescue Net::ReadTimeout, Net::OpenTimeout, Errno::EPIPE, Errno::ECONNRESET, Errno::ECONNREFUSED, SocketError => ex if (refresh_count += 1) < 3 Rails.logger.info("[#{self.id}] REFRESH TASK - #{ex.class} Retrying(#{refresh_count})") retry else error_type = "#{ex.class}" Rails.logger.fatal("[#{self.id}] REFRESH TASK - #{ex.class} Failed #{refresh_count}x") raise end rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex if (refresh_count += 1) < 3 Rails.logger.info("[#{self.id}] REFRESH TASK - Failed Retrying(#{refresh_count})") if ex.code == 401 self.refresh_oauth end retry else error_type = "#{ex.class}" Rails.logger.fatal("[#{self.id}] REFRESH TASK - Failed #{refresh_count}x") raise end ensure # Writing to telegraf status_code = response.code if response endpoint_name = URI(ZuoraConnect.configuration.url).host Thread.current[:appinstance].present? ? app_instance = Thread.current[:appinstance].id : app_instance = 0 ZuoraConnect::AppInstanceBase.write_to_telegraf("response_time": response_time, "status_code": status_code, "endpoint_name": endpoint_name, "direction": "outbound", "error_type": error_type, "function_name": "#{self.class}##{__method__}", "method_name": "GET", "app_instance": app_instance) end