fix: Handle the case when `error_handler` returns `Request` by Mantisus · Pull Request #1595 · apify/crawlee-python
Now this is repeated 6x times in BasicCrawler in some variants. I would consider creating a utility function for it.
async def some_very_good_name(self, request: Request)->None:
request_manager = await self.get_request_manager()
await wait_for(
lambda: request_manager.mark_request_as_handled(request),
timeout=self._internal_timeout,
timeout_message='Marking request as handled timed out after '
f'{self._internal_timeout.total_seconds()} seconds',
logger=self._logger,
max_retries=3,
)
(no need to worry about request_manager = await self.get_request_manager(), it will resolve to self._request_manager)