BullMQ workers 的优雅关闭防止 node.js 退出

问题描述 投票:0回答:0

我遵循建议herethis thread并且我使用以下代码来正常关闭

BullMQ
开发环境中的工作人员
Ubuntu

  const handleTermination = async () => {
    log.info(`Gracefully shutting down worker for queue '${name}'.`);
    await worker.close();
  };
  process.on('SIGTERM', handleTermination).on('SIGINT', handleTermination);

但是上面的代码阻止了应用程序结束。连续3次控制台结果如下

Ctrl+C

^C[2023-04-23T16:15:46.423] [INFO] development - Gracefully shutting down worker for queue 'X'.
[2023-04-23T16:15:46.423] [INFO] development - Gracefully shutting down worker for queue 'Y'.
^C[2023-04-23T16:15:47.075] [INFO] development - Gracefully shutting down worker for queue 'X'.
[2023-04-23T16:15:47.075] [INFO] development - Gracefully shutting down worker for queue 'Y'.
^C[2023-04-23T16:15:47.793] [INFO] development - Gracefully shutting down worker for queue 'X'.
[2023-04-23T16:15:47.793] [INFO] development - Gracefully shutting down worker for queue 'Y'.

明明这个过程永远还在,只能用

kill -9
结束。请注意,没有待处理的工作。

我在这里缺少什么?

当然,当我使用

process.exit()
时问题就消失了,但我知道这不是推荐的处理方法。

node.js signals bullmq graceful-shutdown
© www.soinside.com 2019 - 2024. All rights reserved.