@@ -39,6 +39,8 @@ def crawl(self, *args, **kwargs):
3939 self .crawling = True
4040 try :
4141 self .spider = self ._create_spider (* args , ** kwargs )
42+ self ._apply_settings ()
43+ self ._update_root_log_handler ()
4244 self .engine = self ._create_engine ()
4345 if self .start_requests :
4446 start_requests = iter (self .spider .start_requests ())
@@ -112,6 +114,7 @@ def __init__(self, spider_name, request_kwargs,
112114 self .debug = app_settings .DEBUG
113115 self .crawler_process = None
114116 self .crawler = None
117+ self .crawl_start_time = datetime .datetime .utcnow ()
115118 # callback will be added after instantiation of crawler object
116119 # because we need to know if spider has method available
117120 self .callback_name = request_kwargs .pop ('callback' , None ) or 'parse'
@@ -195,9 +198,8 @@ def handle_scheduling(self, request, spider):
195198
196199 def limit_runtime (self , spider ):
197200 """Stop crawl if it takes too long."""
198- start_time = self .crawler .stats .get_value ("start_time" )
199201 time_now = datetime .datetime .utcnow ()
200- if (time_now - start_time ).seconds >= self .timeout_limit :
202+ if (time_now - self . crawl_start_time ).seconds >= self .timeout_limit :
201203 spider .crawler .engine .close_spider (spider , reason = "timeout" )
202204
203205 def limit_requests (self , spider ):
0 commit comments