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

标签 node.js cron cluster-computing

我正在使用 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/

相关文章:

node.js - 休息 |智威汤逊 |授权 : How To Verify Authorities For Secure Resources

javascript - 在express js 4.4.1中压缩文件(gzip)

php - 将一些电子邮件包含在一个电子邮件中

linux - 每 10 分钟配置一次 Cron 任务并在 6 :30 am 开始

linux - 是否可以创建每 5 小时 30 分钟运行一次的 crontab

python - 如何在集群上启用 MPI 的应用程序中使用 scipy.weave.inline?

javascript - Buffer 和 TypedArray 转换导致数据突变?

node.js - 机器人对话框未启动

bash - 在 SLURM 中运行没有顶级脚本的二进制文件

spring - 在spring配置客户端上配置多个服务器