Delay headless clients startup until server is started

This commit is contained in:
Björn Dahlgren 2021-07-10 15:10:17 +02:00
parent cf5bfd4cf0
commit 30e7a8cdb0
2 changed files with 16 additions and 15 deletions

View File

@ -135,18 +135,6 @@ Logs.prototype.readLogFile = function (filename, callback) {
fs.readFile(filename, callback) fs.readFile(filename, callback)
} }
Logs.prototype.logServerProcesses = function (prefix, serverProcess, headlessClientProcesses) {
var self = this
this.logServerProcess(serverProcess, prefix, 'server')
headlessClientProcesses.forEach(function (headlessClientProcess, idx) {
self.logServerProcess(headlessClientProcess, prefix, 'hc_' + (idx + 1))
})
if (this.config.type === 'linux') {
this.cleanupOldLogFiles()
}
}
Logs.prototype.logServerProcess = function (serverProcess, prefix, suffix) { Logs.prototype.logServerProcess = function (serverProcess, prefix, suffix) {
if (this.config.type !== 'linux') { if (this.config.type !== 'linux') {
return return
@ -183,6 +171,10 @@ Logs.prototype.logServerProcess = function (serverProcess, prefix, suffix) {
} }
Logs.prototype.cleanupOldLogFiles = function () { Logs.prototype.cleanupOldLogFiles = function () {
if (this.config.type !== 'linux') {
return
}
var self = this var self = this
self.logFiles(function (err, files) { self.logFiles(function (err, files) {

View File

@ -89,6 +89,7 @@ Server.prototype.queryStatus = function () {
self.state = null self.state = null
} else { } else {
self.state = state self.state = state
self.startHeadlessClientsIfNeeded()
} }
self.emit('state') self.emit('state')
@ -178,19 +179,25 @@ Server.prototype.start = function () {
this.pid = instance.pid this.pid = instance.pid
this.instance = instance this.instance = instance
this.headlessClientInstances = []
this.queryStatusInterval = setInterval(function () { this.queryStatusInterval = setInterval(function () {
self.queryStatus() self.queryStatus()
}, queryInterval) }, queryInterval)
this.startHeadlessClients() this.logs.logServerProcess(this.instance, this.id, 'server')
this.logs.cleanupOldLogFiles()
this.logs.logServerProcesses(this.id, this.instance, this.headlessClientInstances)
this.emit('state') this.emit('state')
return this return this
} }
Server.prototype.startHeadlessClientsIfNeeded = function () {
if (this.number_of_headless_clients > 0 && this.headlessClientInstances.length === 0) {
this.startHeadlessClients()
}
}
Server.prototype.startHeadlessClients = function () { Server.prototype.startHeadlessClients = function () {
var parameters = this.getParameters() var parameters = this.getParameters()
var self = this var self = this
@ -207,6 +214,7 @@ Server.prototype.startHeadlessClients = function () {
port: self.port port: self.port
}) })
var headlessInstance = headless.start() var headlessInstance = headless.start()
self.logs.logServerProcess(headlessInstance, self.id, 'hc_' + (i + 1))
return headlessInstance return headlessInstance
}) })
@ -245,6 +253,7 @@ Server.prototype.stopHeadlessClients = function () {
this.headlessClientInstances.map(function (headlessClientInstance) { this.headlessClientInstances.map(function (headlessClientInstance) {
headlessClientInstance.kill() headlessClientInstance.kill()
}) })
this.headlessClientInstances = []
} }
Server.prototype.toJSON = function () { Server.prototype.toJSON = function () {