Following the Scrapy discussion #6639, Scrapy 2.13 introduced new async runners - AsyncCrawlerRunner and AsyncCrawlerProcess (see docs). These classes provide native coroutine-based APIs for running Scrapy projects in asynchronous contexts.
We can adopt these new runners in place of our custom implementations:
Utilizing the built-in Scrapy async runners should simplify our Apify-Scrapy integration, reduce maintenance overhead, and ensure compatibility with future Scrapy releases.