在1.01版本中,我发现各回调函数找到数据后再插入数据库有个竞争问题不好解决,如果等所有回调都完成也没有好的处理方法,因为启动不止一处启动了新的TopicSpider实例. 于是我决定把读数据和写DB分开,爬虫负责前一部分,insertDB.js负责后一部分. 这样做避免了爬虫写DB竞争和判断所有回调都结束的难点问题. 而insertDB.js中,等待所有读文件的回调都结束是有办法的,那就是并行化控制,毕竟读各个文件比较简单,易于用task控制. 下面是爬虫代码: //=============…