Skip to content

Commit eab547c

Browse files
alexcepoidangra
authored andcommitted
fix log intermixing in scrapy shell command
1 parent d311fef commit eab547c

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

scrapy/commands/shell.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ def run(self, args, opts):
4343
url = args[0] if args else None
4444
spider = crawler.spiders.create(opts.spider) if opts.spider else None
4545

46-
shell = Shell(crawler, update_vars=self.update_vars, code=opts.code)
46+
self.crawler_process.start_crawling()
4747
self._start_crawler_thread()
48+
49+
shell = Shell(crawler, update_vars=self.update_vars, code=opts.code)
4850
shell.start(url=url, spider=spider)
4951

5052
def _start_crawler_thread(self):
51-
self.crawler_process.print_headers()
52-
t = Thread(target=self.crawler_process.start, kwargs={'headers': False})
53+
t = Thread(target=self.crawler_process.start_reactor)
5354
t.daemon = True
5455
t.start()

scrapy/crawler.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ def __init__(self, *a, **kw):
9191

9292
def start(self):
9393
self.start_crawling()
94+
self.start_reactor()
95+
96+
def start_reactor(self):
9497
if self.settings.getbool('DNSCACHE_ENABLED'):
9598
reactor.installResolver(CachingThreadedResolver(reactor))
9699
reactor.addSystemEventTrigger('before', 'shutdown', self.stop)
@@ -102,7 +105,7 @@ def start_crawling(self):
102105
def stop(self):
103106
raise NotImplementedError
104107

105-
def _stop_reactor(self, _=None):
108+
def stop_reactor(self, _=None):
106109
try:
107110
reactor.stop()
108111
except RuntimeError: # raised if already stopped or in shutdown stage
@@ -120,7 +123,7 @@ def _signal_kill(self, signum, _):
120123
signame = signal_names[signum]
121124
log.msg(format='Received %(signame)s twice, forcing unclean shutdown',
122125
level=log.INFO, signame=signame)
123-
reactor.callFromThread(self._stop_reactor)
126+
reactor.callFromThread(self.stop_reactor)
124127

125128

126129
class CrawlerProcess(ProcessMixin):
@@ -140,7 +143,7 @@ def create_crawler(self, name=None):
140143

141144
return self.crawlers[name]
142145

143-
def start_crawling(self):
146+
def start_crawler(self):
144147
name, crawler = self.crawlers.popitem()
145148

146149
sflo = log.start_from_crawler(crawler)
@@ -157,17 +160,13 @@ def start_crawling(self):
157160

158161
def check_done(self, **kwargs):
159162
if self.crawlers and not self.stopping:
160-
self.start_crawling()
163+
self.start_crawler()
161164
else:
162-
self._stop_reactor()
165+
self.stop_reactor()
163166

164-
def print_headers(self):
167+
def start_crawling(self):
165168
log.scrapy_info(self.settings)
166-
167-
def start(self, headers=True):
168-
if headers:
169-
self.print_headers()
170-
return super(CrawlerProcess, self).start()
169+
self.start_crawler()
171170

172171
@defer.inlineCallbacks
173172
def stop(self):

0 commit comments

Comments
 (0)