ЦИТК-1030. Упрощение останов обработчика исходящих сообщение без повторного завершения дочернего процесса
This commit is contained in:
parent
45c0d42bcb
commit
36e8adc3c2
@ -195,34 +195,14 @@ class OutQueue extends EventEmitter {
|
|||||||
if (prms.proc) this.clearWorkerTerminateTimeout(prms.proc);
|
if (prms.proc) this.clearWorkerTerminateTimeout(prms.proc);
|
||||||
//Удаляем идентификатор позиции очереди из списка обрабатываемых
|
//Удаляем идентификатор позиции очереди из списка обрабатываемых
|
||||||
this.rmInProgress({ nQueueId: prms.nQueueId });
|
this.rmInProgress({ nQueueId: prms.nQueueId });
|
||||||
//Завершаем процесс обработчика, если он ещё активен
|
//Отразим в протоколе завершение процесса обработчика
|
||||||
let killRes = true;
|
|
||||||
let killErr = false;
|
|
||||||
if (prms.proc?.connected) {
|
|
||||||
try {
|
|
||||||
killRes = prms.proc.kill();
|
|
||||||
} catch (e) {
|
|
||||||
killRes = false;
|
|
||||||
killErr = true;
|
|
||||||
//Отразим в протоколе ошибку останова
|
|
||||||
await this.logger.error(`Ошибка останова обработчика исходящего сообщения ${prms.nQueueId}: ${makeErrorText(e)}`, {
|
|
||||||
nQueueId: prms.nQueueId
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (prms.proc) {
|
if (prms.proc) {
|
||||||
if (!killRes && !killErr)
|
|
||||||
await this.logger.error(`Процесс обработчика исходящего сообщения ${prms.nQueueId} не был успешно завершен`, {
|
|
||||||
nQueueId: prms.nQueueId
|
|
||||||
});
|
|
||||||
else if (killRes) {
|
|
||||||
const terminateTimeoutFired = prms.proc.terminateTimeoutFired === true;
|
const terminateTimeoutFired = prms.proc.terminateTimeoutFired === true;
|
||||||
const message = `Процесс обработчика исходящего сообщения ${prms.nQueueId} завершен${terminateTimeoutFired ? " (по таймауту)" : ""}`;
|
const message = `Процесс обработчика исходящего сообщения ${prms.nQueueId} завершен${terminateTimeoutFired ? " (по таймауту)" : ""}`;
|
||||||
const logData = { nQueueId: prms.nQueueId };
|
const logData = { nQueueId: prms.nQueueId };
|
||||||
if (terminateTimeoutFired) await this.logger.warn(message, logData);
|
if (terminateTimeoutFired) await this.logger.warn(message, logData);
|
||||||
else await this.logger.info(message, logData);
|
else await this.logger.info(message, logData);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//Сбрасываем признак "В работе" позиции очереди
|
//Сбрасываем признак "В работе" позиции очереди
|
||||||
await this.dbConn.setInProgress({
|
await this.dbConn.setInProgress({
|
||||||
nQueueId: prms.nQueueId,
|
nQueueId: prms.nQueueId,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user