Javascript Node.js同步对大量任务进行排队

Javascript Node.js同步对大量任务进行排队,javascript,node.js,npm,puppeteer,task-queue,Javascript,Node.js,Npm,Puppeteer,Task Queue,我正在用Puppeter开发Node.js抓取API,它每天抓取1000多个链接,我希望它能自动完成 我正在寻找任务队列,它在继续执行下一个刮取函数之前,等待链接刮取函数完成 我发现bull.js使用Redis。我正在使用MongoDB作为数据库,我不想运行另一个数据库。所以公牛不适合我 有什么建议吗?如果您能帮助我,我将不胜感激。假设您有一些要获取的URL的数组/列表,只需少量代码,这是非常简单的。在前面的回答中,这里有几个实现:,。还有更多。这些回答包含四个单独的函数(每个函数在控制它们的方

我正在用Puppeter开发Node.js抓取API,它每天抓取1000多个链接,我希望它能自动完成

我正在寻找任务队列,它在继续执行下一个刮取函数之前,等待链接刮取函数完成

我发现bull.js使用Redis。我正在使用MongoDB作为数据库,我不想运行另一个数据库。所以公牛不适合我


有什么建议吗?如果您能帮助我,我将不胜感激。

假设您有一些要获取的URL的数组/列表,只需少量代码,这是非常简单的。在前面的回答中,这里有几个实现:,。还有更多。这些回答包含四个单独的函数(每个函数在控制它们的方式上略有不同),但是对于不到30行代码,您可以将其中一行复制到项目中并使用它。同样,Bluebird和Async库都包含多个函数,用于管理如果您想要获取库解决方案,同时有多少个请求在运行中。仅供参考,如果您并行运行N个请求,而不仅仅是1个,则node.js中的性能通常会最佳。您必须尝试使用N的值,因为这取决于您在处理结果时所做的CPU密集型工作的数量,以及每个工作需要多少内存。一个好的起点通常是一次从一些数字开始,比如飞行中的5,然后在5、10和3测试它,看看哪个方向可以在可接受的内存使用情况下提供更好的性能。