You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MailjetApi发送5000封邮件时出现NodeJS堆内存溢出错误

使用Mailjet API发送5000封邮件时触发JavaScript堆内存溢出错误

我的代码实现

function arraySend(array, locals) {
  var mailjetConnect = mailjet.connect(locals.blocks.mailjetparam.username, locals.blocks.mailjetparam.password),
      chunkedArrayMessages = _.chunk(array, 50),
      delay = ms => new Promise(resolve => setTimeout(resolve, ms)),
      promises;

  if (process.env.NODE_ENV.trim() === 'dev') {
    return Promise.resolve();
  } else {
    promises = chunkedArrayMessages.map((messages) => {
      return Promise.all([
        delay(1000),
        mailjetConnect.post('send', { version: 'v3.1' }).request({ Messages: messages }).then(() => {
          return Promise.resolve();
        }).catch(() => {
          return Promise.resolve();
        })
      ]);
    });
    return Promise.all(promises).then(function() {
      return Promise.resolve();
    }).catch(function(err) {
      return Promise.reject(err);
    });
  }
}

错误信息

<--- Last few GCs --->
[30337:0x51226d0]    59607 ms: Mark-sweep (reduce) 4085.3 (4103.8) -> 4085.1 (4107.6) MB, 71.7 / 0.1 ms  (+ 79.5 ms in 40 steps since start of marking, biggest step 78.8 ms, walltime since start of marking 255 ms) (average mu = 0.852, current mu = 0.779) allocation failure scavenge might not succeed
[30337:0x51226d0]    59810 ms: Mark-sweep (reduce) 4087.0 (4108.0) -> 4086.9 (4109.0) MB, 119.3 / 0.1 ms  (average mu = 0.781, current mu = 0.411) allocation failure scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory

应用启动配置

PM2启动命令

sudo pm2 start process.json --node-args="--max-old-space-size=4096"

PM2的process.json配置

{
  "apps": [
    {
      "name": "*****.fr:3006",
      "cwd": "****/mywebsite/cms",
      "script": "./index.js",
      "watch": false,
      "env": {
        "NODE_ENV": "prod"
      }
    }
  ]
}

Package.json启动配置

"start": "set NODE_ENV=prod & node index.js"

服务器配置

  • CPU:Intel Xeon E5-2630L v2 @ 2.40GHz × 8核
  • 内存:16GB
  • 磁盘:40GB SSD

内容的提问来源于stack exchange,提问作者tonymx227

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 09:55:53