Stop reactor on Ctrl-C regardless of 'stop_after_crawl'. Fixes GH-1279.

(cherry picked from commit 64399d18d8)
This commit is contained in:
Mikhail Korobov 2015-06-06 02:53:36 +05:00 committed by Julia Medina
parent 3b0391b8f2
commit c34ec6694c
1 changed files with 6 additions and 1 deletions

View File

@ -216,7 +216,7 @@ class CrawlerProcess(CrawlerRunner):
signame = signal_names[signum]
logger.info("Received %(signame)s, shutting down gracefully. Send again to force ",
{'signame': signame})
reactor.callFromThread(self.stop)
reactor.callFromThread(self._graceful_stop_reactor)
def _signal_kill(self, signum, _):
install_shutdown_handlers(signal.SIG_IGN)
@ -261,6 +261,11 @@ class CrawlerProcess(CrawlerRunner):
timeout=self.settings.getfloat('DNS_TIMEOUT')
)
def _graceful_stop_reactor(self):
d = self.stop()
d.addBoth(self._stop_reactor)
return d
def _stop_reactor(self, _=None):
try:
reactor.stop()