如何在不影响Node.JS应用程序的情况下从后台异步发送大量电子邮件?

时间:2018-10-12 18:03:45

标签: node.js scheduled-tasks email-integration job-scheduling task-queue

我当前正在使用nodemailer从我的node.js应用程序发送电子邮件。 我正在寻找的是一种“东西”,它可以排队并安排多个用户发送大量电子邮件(每个用户500多个)。

这应该在后台作为单独的进程运行,并且必须由我的node.js应用程序触发。 电子邮件发送不应影响我的Node.Js应用程序(服务器)响应请求。

我知道上述声明似乎更像是一项软件要求,而不是要解决的问题,但我需要一个可靠的解决方案。请给出一个简短的解决方案(即,使用什么“东西”。)

1 个答案:

答案 0 :(得分:0)

创建一个lambda函数以仅使用您的nodeMailer脚本发送一封电子邮件。

在此lambda中,我会将邮件程序缓存在实际的导出功能之外,例如:

const nodemailer = require('nodemailer');

exports.handler = (event, context, callback) => {

    // ...NodeMailer stuff

    callback(null, event)
};

然后通过SQS事件触发此lambda,如下所示: https://medium.com/slalom-technology/sqs-as-an-event-source-to-trigger-lambda-8858cb3f627f

您可以使用来自节点js应用程序的JS AWS-SDK将消息添加到队列,如下所示: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SQS.html#sendMessage-property