我有一个 Firebase 云功能,它循环访问数据库中的用户并向每个用户发送一封电子邮件。它使用 Campaign Monitor API 处理事务/智能电子邮件,但请求会导致 ESOCKETTIMEDOUT 错误。Campaign Monitor 可以很好地接收和处理每个请求,但我当然想避免错误。
我怎样才能做到这一点?我在其他地方读过有关设置“代理:假,池:{maxSockets:100}”的信息,但我不确定这是否是正确的方法 - 我不知道在 Firebase og Google 上的哪个位置进行设置云函数。
这是循环调用的请求片段。
api.transactional.sendSmartEmail(details, function (err, res) {
if (err) {
console.log('error sending mail, err);
/*Throws:
{ Error: ESOCKETTIMEDOUT
at ClientRequest.<anonymous> (/user_code/node_modules/createsend-node/node_modules/request/request.js:813:19)
at ClientRequest.g (events.js:292:16)
at emitNone (events.js:86:13)
at ClientRequest.emit (events.js:185:7)
at TLSSocket.emitTimeout (_http_client.js:630:10)
at TLSSocket.g (events.js:292:16)
at emitNone (events.js:86:13)
at TLSSocket.emit (events.js:185:7)
at TLSSocket.Socket._onTimeout (net.js:338:8)
at ontimeout (timers.js:386:11) code: 'ESOCKETTIMEDOUT', connect: false }
*/
} else {
console.log('sent mail');
}
});