优雅关闭防止 node.js 退出"/>
BullMQ workers 的优雅关闭防止 node.js 退出
我遵循建议here和this 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()
时问题就消失了,但我知道这不是推荐的处理方法。
回答如下:
更多推荐
BullMQ workers 的优雅关闭防止 node.js 退出
发布评论