Skip to content

Commit 974db1e

Browse files
authored
Merge pull request #153 from scrapinghub/s211
fix for scrapy 2.11 compatibility on crawler object
2 parents 59dddad + e76f2b9 commit 974db1e

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
matrix:
1616
python-version: ["3.8", "3.9", "3.10", "3.11"]
17-
scrapy-version: ["2.10", "2.9"]
17+
scrapy-version: ["2.11", "2.10"]
1818

1919
steps:
2020
- uses: actions/checkout@v2

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Scrapy>=1.0.0
1+
Scrapy>=2.11

scrapyrt/core.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ def crawl(self, *args, **kwargs):
3939
self.crawling = True
4040
try:
4141
self.spider = self._create_spider(*args, **kwargs)
42+
if hasattr(self, "_apply_settings"):
43+
self._apply_settings()
44+
self._update_root_log_handler()
4245
self.engine = self._create_engine()
4346
if self.start_requests:
4447
start_requests = iter(self.spider.start_requests())
@@ -112,6 +115,7 @@ def __init__(self, spider_name, request_kwargs,
112115
self.debug = app_settings.DEBUG
113116
self.crawler_process = None
114117
self.crawler = None
118+
self.crawl_start_time = datetime.datetime.utcnow()
115119
# callback will be added after instantiation of crawler object
116120
# because we need to know if spider has method available
117121
self.callback_name = request_kwargs.pop('callback', None) or 'parse'
@@ -195,9 +199,8 @@ def handle_scheduling(self, request, spider):
195199

196200
def limit_runtime(self, spider):
197201
"""Stop crawl if it takes too long."""
198-
start_time = self.crawler.stats.get_value("start_time")
199202
time_now = datetime.datetime.utcnow()
200-
if (time_now - start_time).seconds >= self.timeout_limit:
203+
if (time_now - self.crawl_start_time).seconds >= self.timeout_limit:
201204
spider.crawler.engine.close_spider(spider, reason="timeout")
202205

203206
def limit_requests(self, spider):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"Tracker": "https://github.com/scrapinghub/scrapyrt/issues"
4242
},
4343
install_requires=[
44-
'Scrapy>=1.0.0'
44+
'Scrapy>=2.10'
4545
],
4646
package_data={
4747
'scrapyrt': [

0 commit comments

Comments
 (0)