@@ -90,8 +90,8 @@ def __init__(self, *a, **kw):
90
90
install_shutdown_handlers (self ._signal_shutdown )
91
91
92
92
def start (self ):
93
- self .start_crawling ()
94
- self .start_reactor ()
93
+ if self .start_crawling ():
94
+ self .start_reactor ()
95
95
96
96
def start_reactor (self ):
97
97
if self .settings .getbool ('DNSCACHE_ENABLED' ):
@@ -144,29 +144,28 @@ def create_crawler(self, name=None):
144
144
return self .crawlers [name ]
145
145
146
146
def start_crawler (self ):
147
- name , crawler = self .crawlers .popitem ()
147
+ if self .crawlers and not self .stopping :
148
+ name , crawler = self .crawlers .popitem ()
148
149
149
- sflo = log .start_from_crawler (crawler )
150
- crawler .configure ()
151
- crawler .install ()
152
- crawler .signals .connect (crawler .uninstall , signals .engine_stopped )
153
- if sflo :
154
- crawler .signals .connect (sflo .stop , signals .engine_stopped )
150
+ sflo = log .start_from_crawler (crawler )
151
+ crawler .configure ()
152
+ crawler .install ()
153
+ crawler .signals .connect (crawler .uninstall , signals .engine_stopped )
154
+ if sflo :
155
+ crawler .signals .connect (sflo .stop , signals .engine_stopped )
155
156
156
- crawler .signals .connect (self .check_done , signals .engine_stopped )
157
- crawler .start ()
157
+ crawler .signals .connect (self .check_done , signals .engine_stopped )
158
+ crawler .start ()
158
159
159
- return name , crawler
160
+ return name , crawler
160
161
161
162
def check_done (self , ** kwargs ):
162
- if self .crawlers and not self .stopping :
163
- self .start_crawler ()
164
- else :
163
+ if not self .start_crawler ():
165
164
self .stop_reactor ()
166
165
167
166
def start_crawling (self ):
168
167
log .scrapy_info (self .settings )
169
- self .start_crawler ()
168
+ return self .start_crawler () is not None
170
169
171
170
@defer .inlineCallbacks
172
171
def stop (self ):
0 commit comments