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