前景提要
HDC调试需求开发(15万预算),能者速来!>>>
如,一个将数据保存到excel文件的管道类,作为一个通用类,不写死Item类的判断过程,用dict来map类名和文件的关系, outputs = {‘AAAAAItem’: dict(wb=wb, ws=ws), 'BBBBBItem': dict(wb=wb, ws=ws), ...}
所以对于这个dict来说,只有来了一个新的没见过的Item实例才会初始化与之对应的文件。 def process_item(self, item, spider): output = self.outputs.get(item.item_name) # item_name换成type(item)也可以哈哈,一样滴 if not output: # create file # ... output = dict(wb=wb, ws=ws) self.outputs[item.item_name] = output output['ws'].append([...]) return item
那么问题来了,Item们并发怼到这个pipeline里,在第一次的创建文件的过程中,会有线程安全之类的问题吗?要加个双重检验锁咩?(懒得看它的源码是怎么调pipeline&自己些测试)