NodeJS和Send Message中的大型数组迭代

时间:2015-12-21 22:25:07

标签: node.js sails.js

我正在为NodeJS中的iOS Native App创建一个API。我使用SailsJS。我想建议创建一个实用程序函数来向10000个用户发送消息。现在我正在使用for循环来遍历所有8000条记录并发送消息。我不确定这是一个正确的方法,一次迭代8000用户。我们需要在2分钟内将消息发送给所有8000个用户。但是现在需要大约5-10分钟发送消息。我知道NodeJS是一种单线程语言,它不能使用超过1个核心。

我们有一个4核云服务器,8GB Ram

  1. 有没有更好的方法在更短的时间内完成这项工作。
  2. 如果我使用nodeJS控制台应用程序执行此操作该怎么办?
  3. 如果我使用Python,Ruby或Java等多线程语言创建控制台应用程序来发送消息。
  4. 如果我使用像Django,Ruby on Rails这样的框架 创建另一个Web应用程序只是发送消息。
  5. 当我拥有8GB内存时,获取整个10000条记录并将它们存储在Javascript全局变量数组中是否好又快。
  6. 请指教。我想让消息发送过程更快更稳定,而不会让服务器忙碌。

1 个答案:

答案 0 :(得分:0)

您可以使用作业队列来委派发送消息的任务。

RabbitMq在这种过程中享有良好的声誉。

您可以在服务器上安装RabbitMQ实例,并指派工作人员完成这些工作。

要开始使用,您可以阅读http://www.rabbitmq.com/getstarted.html

它在节点上有一个适配器,您也可以与sails应用程序集成。

https://github.com/postwait/node-amqp

我希望这可以帮助您达到应用程序所需的速度。

干杯。