Skip to content

Commit 673a14f

Browse files
committed
small refactor
1 parent 9e6f40f commit 673a14f

File tree

3 files changed

+3
-6
lines changed

3 files changed

+3
-6
lines changed

scrapy_crawlera/middleware.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def process_response(self, request, response, spider):
163163
if self._is_no_available_proxies(response):
164164
self._set_custom_delay(request, next(self.exp_backoff))
165165
else:
166-
self._reset_noslaves_delay()
166+
self.exp_backoff = exp_backoff(self.backoff_step, self.backoff_max)
167167

168168
if self._is_banned(response):
169169
self._bans[key] += 1
@@ -209,10 +209,6 @@ def _get_slot(self, request):
209209
key = self._get_slot_key(request)
210210
return key, self.crawler.engine.downloader.slots.get(key)
211211

212-
def _reset_noslaves_delay(self):
213-
"""Reset the number of attempts due to no available proxies"""
214-
self.exp_backoff = exp_backoff(self.backoff_step, self.backoff_max)
215-
216212
def _set_custom_delay(self, request, delay):
217213
"""Set custom delay for slot and save original one."""
218214
key, slot = self._get_slot(request)

scrapy_crawlera/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def exp_backoff(step, max):
1010
# random.uniform(0, min(max, step * 2 ** attempt))
1111
max_attempts = math.log(max / step, 2)
1212
for attempt in count(0, 1):
13-
if attempt < max_attempts:
13+
if attempt <= max_attempts:
1414
yield random.uniform(0, step * 2 ** attempt)
1515
else:
1616
yield random.uniform(0, max)

tests/test_crawlera.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ def test_noslaves_delays(self, random_uniform_patch):
503503
# delays grow exponentially
504504
mw.process_response(noslaves_req, noslaves_res, self.spider)
505505
self.assertEqual(slot.delay, backoff_step)
506+
506507
mw.process_response(noslaves_req, noslaves_res, self.spider)
507508
self.assertEqual(slot.delay, backoff_step * 2 ** 1)
508509

0 commit comments

Comments
 (0)