感恩节快乐,PM2小窍门致NodeJS开发者!


最近从数仓跑定时任务拉取数据时遇到一个问题,pm2以cluster模式运行,高并发访问Hive数据表会直接被拒绝链接。前端


那么怎么解决这个问题呢?有两种方案:bash

一种是再起一个单进程独立执行定时任务,并发

另外一种是cluster模式仅执行一次定时任务。ide


在PM2的文档上有这么一段话,这不刚好能解决咱们的问题吗?高并发

并且特别举例说明了定时任务的应用场景。ui

Cluster environment variablelink

The NODE_APP_INSTANCE environment variable is used to make a difference between cluster.spa

For example, if you want to run a cronjob only on one cluster, you can check if process.env.NODE_APP_INSTANCE === 0.code

代码以下,是否是很简单呢?cdn

if (process.env.NODE_APP_INSTANCE === '0') { 
    // 定时任务
}复制代码


本文参考:blog

PM2文档 https://pm2.io/doc/en/runtime/guide/load-balancing/#cluster-environment-variable

本文做者:

黑马大前端 崔天泽

相关文章
相关标签/搜索