我有一个Node.js脚本,该脚本从服务器获取任务并对数据执行一些操作。
在内部运行一个while(true)循环,在该循环中,它从服务器获取任务,等待任务完成,然后将结果推送回服务器。
我想扩展它,因此可以同时执行许多任务。 所以我发现了两个选择:
- 使用promise queue。例如。获取任务,放入队列
- 仅按时处理一项任务,但运行脚本的许多实例(以群集模式运行)
我想知道哪个更好,如果使用第二个选项,它将比第一个选项消耗更多的RAM?
答案 0 :(得分:0)
因此,我使用RabbitMQ作为消息队列。它的客户端库amqplib
消除了while(true)
循环的使用,您可以通过产生更多的过程来极大地扩展它。通过将prefetch count
设置为大于1的值,它也可以同时处理多个任务。