我正在创建一个本地响应缓存,我正在为其创建一个Pipeline
,因为我需要根据从站点收集的项目ID来存储该项目的信息。在
现在我还需要创建一个Downloader Middleware
,因为根据我之前存储的ID,我不想用新的Request
来访问站点,所以我在发送到服务器之前拦截{
现在,正如您所见,Pipeline
和{
DOWNLOADER_MIDDLEWARES = {
'myproject.urlcache.CachePipelineMiddleware': 1,
}
ITEM_PIPELINES = {
'myproject.urlcache.CachePipelineMiddleware': 800,
}
我得到了两个不同的实例(检查构造函数上的日志消息,因此创建了两次)。在
如何确保只创建一个实例,并且不会与项目的Pipeline
和{
我刚刚意识到这是一个简单的
Singleton
问题,scrapy
实际上可以与管道和中间件的同一实例一起工作。在我首先创建这个
Singleton
类:然后,在管道/中间件的类上,我添加了以下内容:
^{pr2}$相关问题 更多 >
编程相关推荐