Skip to content

Commit 92ff096

Browse files
hermit-crabvshlapakov
authored andcommitted
Add retries for more calls #126 (#131)
1 parent e4db20a commit 92ff096

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

scrapinghub/hubstorage/collectionsrt.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def delete(self, _type, _name, _keys):
6363
return self.apipost((_type, _name, 'deleted'), is_idempotent=True, jl=_keys)
6464

6565
def truncate(self, _name):
66-
return self.apipost('delete', params={'name': _name})
66+
return self.apipost('delete', params={'name': _name}, is_idempotent=True)
6767

6868
def iter_json(self, _type, _name, requests_params=None, **apiparams):
6969
return DownloadableResource.iter_json(self, (_type, _name),
@@ -115,7 +115,10 @@ def _batch(self, method, path, total_param, progress=None, **params):
115115
getparams = dict(params)
116116
try:
117117
while True:
118-
r = next(self.apirequest(path, method=method, params=getparams))
118+
r = next(self.apirequest(
119+
path, method=method, params=getparams,
120+
is_idempotent=method=='GET',
121+
))
119122
total += r[total_param]
120123
next_start = r.get('nextstart')
121124
if next_start is None:

scrapinghub/hubstorage/frontier.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def read(self, frontier, slot, mincount=None):
5959
return self.apiget((frontier, 's', slot, 'q'), params=params)
6060

6161
def delete(self, frontier, slot, ids):
62-
self.apipost((frontier, 's', slot, 'q/deleted'), jl=ids)
62+
self.apipost((frontier, 's', slot, 'q/deleted'), jl=ids, is_idempotent=True)
6363

6464
def delete_slot(self, frontier, slot):
6565
self.apidelete((frontier, 's', slot))

scrapinghub/hubstorage/resourcetype.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ def iter_msgpack(self, _path=None, requests_params=None, **apiparams):
158158
requests_params = dict(requests_params or {})
159159
requests_params.setdefault('method', 'GET')
160160
requests_params.setdefault('stream', True)
161+
requests_params.setdefault('is_idempotent', True)
161162
requests_params = self._enforce_msgpack(**requests_params)
162163
for chunk in self._retry(self._iter_content, False, _path,
163164
requests_params, **apiparams):
@@ -168,6 +169,7 @@ def iter_json(self, _path=None, requests_params=None, **apiparams):
168169
requests_params = dict(requests_params or {})
169170
requests_params.setdefault('method', 'GET')
170171
requests_params.setdefault('stream', True)
172+
requests_params.setdefault('is_idempotent', True)
171173
for line in self._retry(self._iter_lines, True, _path, requests_params,
172174
**apiparams):
173175
yield line

0 commit comments

Comments
 (0)