避免使用来自Google / Firebase云功能的ESOCKETTIMEDOUT

时间:2018-01-31 14:22:16

标签: node.js firebase google-cloud-functions campaign-monitor

我有一个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');
    }
});

0 个答案:

没有答案