gpt4 book ai didi

node.js - 如何在使用集群模块的 Node.js 应用程序中运行 Cron Job?

转载 作者:IT老高 更新时间:2023-10-28 22:10:36 25 4
gpt4 key购买 nike

我正在使用 node-cron用于在 Node.js 应用程序中调度任务的模块。我还想使用核心集群模块在多个进程中运行应用程序。

在多个进程中运行应用程序最终会在每个进程中执行计划任务(例如,如果任务要发送电子邮件,则电子邮件将被发送多次)。

与集群模块一起运行 cron 作业的最佳做法/可能的方法是什么?我是否应该创建一些单独的进程来仅处理 cron 作业并且不接受任何请求。如果是,我该如何以正确的方式做到这一点?

最佳答案

如果使用PM2,您可以使用 PM2 本身提供的名为 NODE_APP_INSTANCE 的环境变量,它需要 PM2 2.5 或更高版本。

NODE_APP_INSTANCE 环境变量可用于确定进程之间的差异,例如您可能只想在一个进程上运行 cronjob,您可以这样做

if(process.env.NODE_APP_INSTANCE == 0) {
//在这里安排你的cron作业,因为这部分只会为一个集群执行
}
,

因为两个进程不可能有相同的编号。

更多关于 PM2 官方文档 here 的信息.

关于node.js - 如何在使用集群模块的 Node.js 应用程序中运行 Cron Job?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30843605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com