There are few concurrency settings in Scrapy, like CONCURRENT_REQUESTS. Does it mean, that Scrapy crawler is multi-threaded? So if I run scrapy crawl my_crawler
it will literally fire multiple simultaneous requests in parallel?
Im asking because, I've read that Scrapy is single-threaded.
Scrapy is single-threaded, except the interactive shell and some tests, see source.
It's built on top of Twisted, which is single-threaded too, and makes use of it's own asynchronous concurrency capabilities, such as twisted.internet.interfaces.IReactorThreads.callFromThread
, see source.