我有一个执行速度非常慢的刮刀。我知道瓶颈不是管道(即bi_pipeline(,因为其他不使用XMLFeedSpider
的刮刀速度很快。这是我的代码:
class MySpider(XMLFeedSpider):
custom_settings = {
'ITEM_PIPELINES': {
'my.pipelines.bi_pipeline': 400
}
}
start_urls=["http://localhost/my.xml"]
iterator = 'iternodes' # This is actually unnecessary, since it's the default value
itertag = 'DEALER'
def parse_node(self, response, node):
my_item = Dealer()
my_item['title'] = node.xpath('TITLE/text()').get()
# send to pipeline to get stored in database
yield my_item
# get the sales for each dealer
yield Request("https://some.domain.com/od/dealers.json?id=" + node.xpath('ID/text()').get(), callback=self.each_sale)
我不知道为什么,但这很慢。比如每分钟35个项目。我应该在哪里进行优化?
已解决。在数据库中的触发器上调用了一个更新脚本。这是一个清理脚本,我运行它的目标需要大量清理。