class ZuoraConnect::AppInstanceBase
def refresh(session: {}, session_fallback: false)
def refresh(session: {}, session_fallback: false) refresh_count ||= 0 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 self.build_task(task_data: JSON.parse(response.body), session: session) self.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 *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS).concat(ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex if (refresh_count += 1) < 3 Rails.logger.info("[#{self.id}] REFRESH TASK - #{ex.class} Retrying(#{refresh_count})") retry else 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 Rails.logger.fatal("[#{self.id}] REFRESH TASK - Failed #{refresh_count}x") raise end end