我有一个Firebase云功能,它循环遍历数据库中的用户并向每个用户发送一封电子邮件。它使用Campaign Monitor API进行事务/智能电子邮件,但请求导致ESOCKETTIMEDOUT错误。 Campaign Monitor接收并处理每个请求就好了,但我当然希望避免错误。
我该怎么做?我在其他地方读到了一个设置,'agent:false,pool:{maxSockets:100}',但我不确定这是否是正确的方法 - 而且我不知道在Firebase和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');
}
});