Skip to content

Commit 55f7104

Browse files
sibiryakovdangra
authored andcommitted
nextcall repetitive calls (heartbeats).
1 parent b262411 commit 55f7104

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

scrapy/core/engine.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import logging
88
from time import time
99

10-
from twisted.internet import defer
10+
from twisted.internet import defer, task
1111
from twisted.python.failure import Failure
1212

1313
from scrapy import signals
@@ -30,6 +30,7 @@ def __init__(self, start_requests, close_if_idle, nextcall, scheduler):
3030
self.close_if_idle = close_if_idle
3131
self.nextcall = nextcall
3232
self.scheduler = scheduler
33+
self.heartbeat = task.LoopingCall(nextcall.schedule)
3334

3435
def add_request(self, request):
3536
self.inprogress.add(request)
@@ -47,6 +48,7 @@ def _maybe_fire_closing(self):
4748
if self.closing and not self.inprogress:
4849
if self.nextcall:
4950
self.nextcall.cancel()
51+
self.heartbeat.stop()
5052
self.closing.callback(None)
5153

5254

@@ -98,7 +100,6 @@ def _next_request(self, spider):
98100
return
99101

100102
if self.paused:
101-
slot.nextcall.schedule(5)
102103
return
103104

104105
while not self._needs_backout(spider):
@@ -239,6 +240,7 @@ def open_spider(self, spider, start_requests=(), close_if_idle=True):
239240
self.crawler.stats.open_spider(spider)
240241
yield self.signals.send_catch_log_deferred(signals.spider_opened, spider=spider)
241242
slot.nextcall.schedule()
243+
slot.heartbeat.start(5)
242244

243245
def _spider_idle(self, spider):
244246
"""Called when a spider gets idle. This function is called when there
@@ -252,7 +254,6 @@ def _spider_idle(self, spider):
252254
spider=spider, dont_log=DontCloseSpider)
253255
if any(isinstance(x, Failure) and isinstance(x.value, DontCloseSpider) \
254256
for _, x in res):
255-
self.slot.nextcall.schedule(5)
256257
return
257258

258259
if self.spider_is_idle(spider):

0 commit comments

Comments
 (0)