From 4c0d5673df02fe42e1bbadfee7d4ea1ca1f88e98 Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sun, 2 Nov 2014 21:44:43 -0500 Subject: retry 500 Internal Server Errors a few times in order to get past timing issues related to node deployment (#6287) --- files/couch-doc-update | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'files/couch-doc-update') diff --git a/files/couch-doc-update b/files/couch-doc-update index df216db..903a661 100644 --- a/files/couch-doc-update +++ b/files/couch-doc-update @@ -116,14 +116,30 @@ def get_document(db, doc_id) end def update_document(db, doc, data) + attempt ||= 1 doc.reject! {|k,v| !["_id", "_rev"].include? k} doc.merge! data db.save_doc(doc) +rescue RestClient::Exception => e + if e.response.code == 500 + raise if attempt > 5 + attempt += 1 + sleep 10 + retry + end end def create_document(db, doc_id, data) + attempt ||= 1 data["_id"] = doc_id db.save_doc(data) +rescue RestClient::Exception => e + if e.response.code == 500 + raise if attempt > 5 + attempt += 1 + sleep 10 + retry + end end def connection_string(database, host, netrc_file = nil) -- cgit v1.2.3