diff --git a/scrapy/core/engine.py b/scrapy/core/engine.py index 1bbf8921f..d5e3f4064 100644 --- a/scrapy/core/engine.py +++ b/scrapy/core/engine.py @@ -102,7 +102,6 @@ class ExecutionEngine: ) self.start_time: float | None = None self._start: AsyncIterator[Any] | None = None - self._started_request_processing = False downloader_cls: type[Downloader] = load_object(self.settings["DOWNLOADER"]) try: self.scheduler_cls: type[BaseScheduler] = self._get_scheduler_class( @@ -135,7 +134,7 @@ class ExecutionEngine: ) self.running = True if _start_request_processing: - self.start_request_processing() + self._start_request_processing() self._closewait: Deferred[None] = Deferred() await maybe_deferred_to_future(self._closewait) @@ -207,13 +206,9 @@ class ExecutionEngine: self._slot.nextcall.schedule() @deferred_f_from_coro_f - async def start_request_processing(self) -> None: + async def _start_request_processing(self) -> None: """Starts consuming Spider.start() output and sending scheduled requests.""" - if self._started_request_processing: - raise RuntimeError("Request processing already started") - self._started_request_processing = True - # Starts the processing of scheduled requests, as well as a periodic # call to that processing method for scenarios where the scheduler # reports having pending requests but returns none. diff --git a/scrapy/shell.py b/scrapy/shell.py index 14bc31137..bb39eccc3 100644 --- a/scrapy/shell.py +++ b/scrapy/shell.py @@ -128,7 +128,7 @@ class Shell: await maybe_deferred_to_future( self.crawler.engine.open_spider(spider, close_if_idle=False) ) - self.crawler.engine.start_request_processing() + self.crawler.engine._start_request_processing() self.spider = spider def fetch(