lib/itrp/client.rb in itrp-client-1.1.0 vs lib/itrp/client.rb in itrp-client-1.1.1

- old
+ new

@@ -130,11 +130,15 @@ if block_until_completed raise ::Itrp::UploadFailed.new("Failed to queue #{type} import. #{response.message}") unless response.valid? token = response[:token] while true response = get("/import/#{token}") - raise ::Itrp::Exception.new("Unable to monitor progress for #{type} import. #{response.message}") unless response.valid? + unless response.valid? + sleep(5) + response = get("/import/#{token}") # single retry to recover from a network error + raise ::Itrp::Exception.new("Unable to monitor progress for #{type} import. #{response.message}") unless response.valid? + end # wait 30 seconds while the response is OK and import is still busy break unless ['queued', 'processing'].include?(response[:state]) @logger.debug { "Import of '#{csv.path}' is #{response[:state]}. Checking again in 30 seconds." } sleep(30) end @@ -163,10 +167,14 @@ if block_until_completed raise ::Itrp::UploadFailed.new("Failed to queue '#{data[:type]}' export. #{response.message}") unless response.valid? token = response[:token] while true response = get("/export/#{token}") - raise ::Itrp::Exception.new("Unable to monitor progress for '#{data[:type]}' export. #{response.message}") unless response.valid? + unless response.valid? + sleep(5) + response = get("/export/#{token}") # single retry to recover from a network error + raise ::Itrp::Exception.new("Unable to monitor progress for '#{data[:type]}' export. #{response.message}") unless response.valid? + end # wait 30 seconds while the response is OK and export is still busy break unless ['queued', 'processing'].include?(response[:state]) @logger.debug { "Export of '#{data[:type]}' is #{response[:state]}. Checking again in 30 seconds." } sleep(30) end