From a33e8b507f5d9721fd2c014bd4bbb8299d6f05c1 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Thu, 10 Jun 2010 13:39:45 -0300 Subject: [PATCH] scrapy.service: fixed bug with process respawning --- scrapy/service.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/scrapy/service.py b/scrapy/service.py index 1e140f1b2..c31e273bb 100644 --- a/scrapy/service.py +++ b/scrapy/service.py @@ -25,13 +25,10 @@ class ScrapyService(Service): logfile = self.get_log_file(settings_module, position) env['SCRAPY_SETTINGS_MODULE'] = settings_module env['SCRAPY_LOG_FILE'] = logfile - pp = ScrapyProcessProtocol(self, botname, settings_module, logfile) + pp = ScrapyProcessProtocol(botname, settings_module, logfile) + pp.deferred.addCallback(lambda _: reactor.callLater(5, \ + self.spawn_process, settings_module, position)) reactor.spawnProcess(pp, sys.executable, args=args, env=env) - pp.deferred.addCallback(self.respawn_process, args, env) - - def respawn_process(self, pp, args, env): - reactor.callLater(5, reactor.spawnProcess, pp, sys.executable, \ - args=args, env=env) def get_log_file(self, settings_module, position): botname = self.get_bot_name(settings_module) @@ -44,8 +41,7 @@ class ScrapyService(Service): class ScrapyProcessProtocol(protocol.ProcessProtocol): - def __init__(self, service, botname, settings_module, logfile): - self.service = service + def __init__(self, botname, settings_module, logfile): self.botname = botname self.settings_module = settings_module self.logfile = logfile