我永遠使用來保持節點腳本運行:
forever start script1.js
但我需要隨機運行檔案...
例如:
- 運行節點 script1.js
- 運行節點 script2.js
- 運行 script3.js
...
有什么辦法可以讓master.js檔案每次隨機運行這些腳本檔案?然后我可以永遠使用這個主人。
forever start master.js > 隨機運行 script1.js script2.js 等。
uj5u.com熱心網友回復:
首先,定義“隨機”。你的意思是每個設定的時間隨機檔案運行?第二,你希望worker腳本的生命依賴于master嗎?
如果我明白你的意思,那么這很簡單
let {fork} = require("child_process")
setInterval(() => {
let scripts = ["script1.js", "script2.js", "script3.js"] //you can provide full path
let randomScript = scripts[Math.floor(Math.random() * Math.floor(scripts.length))]
fork(randomScript) //optionally, you can inherit stdio if you wish to see output
}, 20000) //time period in ms, in this case 20 seconds
我在這里使用了 fork,它只適用于 js 腳本,但如果您希望執行檔案或生成另一個行程,我建議您查看這里
uj5u.com熱心網友回復:
使用代碼創建 master.js
const {exec} = require('child_process');
function getRandomNumberBetween(min,max){
return Math.floor(Math.random()*(max-min 1) min);
}
switch (getRandomNumberBetween(1,3)) {
case 1:
exec('forever start script1.js')
break;
case 2:
exec('forever start script2.js')
break;
case 3:
exec('forever start script3.js')
break;
default:
break;
}
運行檔案 node master
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/420742.html
標籤:
