感恩節快樂,PM2小竅門致NodeJS開發者!

黑馬大前端發表於2018-11-22

感恩節快樂,PM2小竅門致NodeJS開發者!


最近從數倉跑定時任務拉取資料時遇到一個問題,pm2以cluster模式執行,高併發訪問Hive資料表會直接被拒絕連線。


那麼怎麼解決這個問題呢?有兩種方案:

一種是再起一個單程式獨立執行定時任務,

另一種是cluster模式僅執行一次定時任務。


在PM2的文件上有這麼一段話,這不恰好能解決我們的問題嗎?

而且特別舉例說明了定時任務的應用場景。

Cluster environment variablelink

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

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

程式碼如下,是不是很簡單呢?

if (process.env.NODE_APP_INSTANCE === '0') { 
    // 定時任務
}複製程式碼


本文參考:

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

本文作者:

黑馬大前端 崔天澤


相關文章