感恩節快樂,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

本文做者:

黑馬大前端 崔天澤

相關文章
相關標籤/搜索