2015-06-21 41 views
1

我正在开发一个node.js应用程序。在我的应用程序中,我需要向满足特定条件的用户发送电子邮件和短信。我使用Gmail SMTP进行电子邮件和第三方供应商进行SMS。我假设在循环中解雇电子邮件和短信服务的API是危险的。什么是正确的方法呢?NodeJS中的电子邮件和短信队列

+0

为什么你认为,这是危险的? – Andrey

+0

我听说过电子邮件和短信没有被传递的恐怖故事。只是想在推入生产之前进行确认。 –

+0

这取决于很多事情,主要观点 - 您正在使用哪种服务。现在不可能回答你的问题。 – Andrey

回答

1

花费的时间显然与N成正比,N是您设置的大小。尽可能多的用户,需要更长的时间。请记住,通过网络的请求在任何情况下都不会被阻止。

无论如何,除非风险N为数千或数百万项,您可以在一个循环中完成并附加适当的回调来处理响应/错误。

否则,您可以使用nextTick发送电子邮件/短信并安排下一个元素的相同操作(有关更多详细信息,请参阅nodejs文档)。 通过这种方式,您可以将所有活动分散在事件循环的多次迭代中。

+0

我写了一个提交数据的API。当这个事件发生时,电子邮件和短信都会发送给用户。但是,API将在电子邮件和短信完整发送之前返回响应。电子邮件和短信只是确认电子邮件,不会使用户处于风险之中。你认为我仍然可以继续这个实施吗? –

+0

我猜你收到的响应对象是一个发出像'data'或'error'这样的事件的对象,不是吗?如果是这种情况,请在这些事件上附加一些监听器,因为您正在进入异步世界,那么您可以自由进行这些操作,而不是阻止这些操作。 – skypjack

+0

我已经看到人们跟踪发送的电子邮件和短信的状态,并运行一个crone作业以确保通知已发送。据我所知,这会给服务器带来额外的负担。通过一百万用户来执行一项低劣的工作并不是一个笑话。这让我感到困惑。 –