Split pool daemon into mining and observer roles
Some checks failed
CodeQL / Analyze (javascript) (push) Failing after 36s
Some checks failed
CodeQL / Analyze (javascript) (push) Failing after 36s
This commit is contained in:
86
init.js
86
init.js
@@ -41,16 +41,20 @@
|
||||
|
||||
// Load pool modules
|
||||
if (cluster.isWorker) {
|
||||
switch (process.env.workerType) {
|
||||
case 'pool':
|
||||
require('./lib/pool.js');
|
||||
break;
|
||||
case 'daemon':
|
||||
require('./lib/daemon.js')
|
||||
break
|
||||
case 'blockUnlocker':
|
||||
require('./lib/blockUnlocker.js');
|
||||
break;
|
||||
switch (process.env.workerType) {
|
||||
case 'pool':
|
||||
require('./lib/pool.js');
|
||||
break;
|
||||
case 'daemon':
|
||||
case 'miningSource':
|
||||
require('./lib/miningSource.js')
|
||||
break
|
||||
case 'chainObserver':
|
||||
require('./lib/chainObserver.js')
|
||||
break
|
||||
case 'blockUnlocker':
|
||||
require('./lib/blockUnlocker.js');
|
||||
break;
|
||||
case 'paymentProcessor':
|
||||
require('./lib/paymentProcessor.js');
|
||||
break;
|
||||
@@ -73,7 +77,7 @@
|
||||
|
||||
// Run a single module ?
|
||||
var singleModule = (function () {
|
||||
var validModules = ['pool', 'api', 'unlocker', 'payments', 'chartsDataCollector', 'telegramBot'];
|
||||
var validModules = ['pool', 'api', 'unlocker', 'payments', 'chartsDataCollector', 'telegramBot', 'daemon', 'miningSource', 'chainObserver'];
|
||||
|
||||
for (var i = 0; i < process.argv.length; i++) {
|
||||
if (process.argv[i].indexOf('-module=') === 0) {
|
||||
@@ -95,13 +99,17 @@
|
||||
if (singleModule) {
|
||||
log('info', logSystem, 'Running in single module mode: %s', [singleModule]);
|
||||
|
||||
switch (singleModule) {
|
||||
case 'daemon':
|
||||
spawnDaemon()
|
||||
break
|
||||
case 'pool':
|
||||
spawnPoolWorkers();
|
||||
break;
|
||||
switch (singleModule) {
|
||||
case 'daemon':
|
||||
case 'miningSource':
|
||||
spawnMiningSource();
|
||||
break;
|
||||
case 'chainObserver':
|
||||
spawnChainObserver();
|
||||
break;
|
||||
case 'pool':
|
||||
spawnPoolWorkers();
|
||||
break;
|
||||
case 'unlocker':
|
||||
spawnBlockUnlocker();
|
||||
break;
|
||||
@@ -118,12 +126,13 @@
|
||||
spawnTelegramBot();
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
spawnPoolWorkers();
|
||||
spawnDaemon();
|
||||
spawnBlockUnlocker();
|
||||
spawnPaymentProcessor();
|
||||
spawnApi();
|
||||
} else {
|
||||
spawnPoolWorkers();
|
||||
spawnMiningSource();
|
||||
spawnChainObserver();
|
||||
spawnBlockUnlocker();
|
||||
spawnPaymentProcessor();
|
||||
spawnApi();
|
||||
spawnChartsDataCollector();
|
||||
spawnTelegramBot();
|
||||
}
|
||||
@@ -229,18 +238,18 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Spawn daemon module
|
||||
**/
|
||||
function spawnDaemon () {
|
||||
* Spawn mining source module
|
||||
**/
|
||||
function spawnMiningSource () {
|
||||
if (!config.poolServer || !config.poolServer.enabled || !config.poolServer.ports || config.poolServer.ports.length === 0) return;
|
||||
|
||||
var worker = cluster.fork({
|
||||
workerType: 'daemon'
|
||||
workerType: 'miningSource'
|
||||
});
|
||||
worker.on('exit', function (code, signal) {
|
||||
log('error', logSystem, 'Daemon died, spawning replacement...');
|
||||
log('error', logSystem, 'Mining source died, spawning replacement...');
|
||||
setTimeout(function () {
|
||||
spawnDaemon();
|
||||
spawnMiningSource();
|
||||
}, 10);
|
||||
})
|
||||
.on('message', function (msg) {
|
||||
@@ -260,6 +269,23 @@
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Spawn chain observer module
|
||||
**/
|
||||
function spawnChainObserver () {
|
||||
if (!config.poolServer || !config.poolServer.enabled || !config.poolServer.ports || config.poolServer.ports.length === 0) return;
|
||||
|
||||
var worker = cluster.fork({
|
||||
workerType: 'chainObserver'
|
||||
});
|
||||
worker.on('exit', function () {
|
||||
log('error', logSystem, 'Chain observer died, spawning replacement...');
|
||||
setTimeout(function () {
|
||||
spawnChainObserver();
|
||||
}, 2000);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Spawn block unlocker module
|
||||
**/
|
||||
|
||||
Reference in New Issue
Block a user