ЦИТК-759 - Исправление ошибки считывания очереди обмена при сброшенной галке "Сохранять успешное выполнение в очереди"
This commit is contained in:
parent
6908166e48
commit
7b298b51d7
@ -312,14 +312,14 @@ class InQueue extends EventEmitter {
|
||||
if (optionsResp.headers) prms.res.set(optionsResp.headers);
|
||||
prms.res.status(optionsResp.statusCode || 200).send(blResp);
|
||||
}
|
||||
//Фиксируем успех обработки - в протоколе работы сервиса
|
||||
await this.logger.info(`Входящее сообщение ${q.nId} успешно отработано`, { nQueueId: q.nId });
|
||||
//Фиксируем успех обработки - в статусе сообщения
|
||||
q = await this.dbConn.setQueueState({
|
||||
nQueueId: q.nId,
|
||||
nIncExecCnt: NINC_EXEC_CNT_YES,
|
||||
nExecState: objQueueSchema.NQUEUE_EXEC_STATE_OK
|
||||
});
|
||||
//Фиксируем успех обработки - в протоколе работы сервиса
|
||||
await this.logger.info(`Входящее сообщение ${q.nId} успешно отработано`, { nQueueId: q.nId });
|
||||
} catch (e) {
|
||||
//Тема и текст уведомления об ошибке
|
||||
let sSubject = `Ошибка обработки входящего сообщения сервером приложений для функции "${prms.function.sCode}" сервиса "${prms.service.sCode}"`;
|
||||
|
@ -247,8 +247,11 @@ class OutQueue extends EventEmitter {
|
||||
const proc = ChildProcess.fork("core/out_queue_processor", { silent: false });
|
||||
//Перехват сообщений обработчика
|
||||
proc.on("message", async result => {
|
||||
//Считываем сообщение изменённое обработчиком
|
||||
prms.queue = await self.dbConn.getQueue({ nQueueId: prms.queue.nId });
|
||||
//Перечитывание не требуется, если выполнено успешно
|
||||
if (result.sResult !== objOutQueueProcessorSchema.STASK_RESULT_OK) {
|
||||
//Перечитываем запись очереди с учетом изменения статуса
|
||||
prms.queue = await self.dbConn.getQueue({ nQueueId: prms.queue.nId });
|
||||
}
|
||||
//Проверяем структуру полученного сообщения
|
||||
let sCheckResult = validateObject(
|
||||
result,
|
||||
|
@ -435,16 +435,16 @@ const dbProcess = async prms => {
|
||||
//Если результат - ошибка аутентификации, то и её пробрасываем, но с правильным кодом
|
||||
if (prcRes.sResult == objQueueSchema.SPRC_RESP_RESULT_UNAUTH) throw new ServerError(SERR_UNAUTH, prcRes.sMsg || "Нет аутентификации");
|
||||
}
|
||||
//Фиксируем успешное исполнение сервером БД - в протоколе работы сервиса
|
||||
await logger.info(`Исходящее сообщение ${prms.queue.nId} успешно отработано сервером БД`, {
|
||||
nQueueId: prms.queue.nId
|
||||
});
|
||||
//Фиксируем успешное исполнение (полное - дальше обработки нет) - в статусе сообщения
|
||||
res = await dbConn.setQueueState({
|
||||
nQueueId: prms.queue.nId,
|
||||
nIncExecCnt: prms.queue.nExecCnt == 0 ? NINC_EXEC_CNT_YES : NINC_EXEC_CNT_NO,
|
||||
nExecState: objQueueSchema.NQUEUE_EXEC_STATE_OK
|
||||
});
|
||||
//Фиксируем успешное исполнение сервером БД - в протоколе работы сервиса
|
||||
await logger.info(`Исходящее сообщение ${prms.queue.nId} успешно отработано сервером БД`, {
|
||||
nQueueId: prms.queue.nId
|
||||
});
|
||||
} catch (e) {
|
||||
//Если была ошибка аутентификации - возвращаем на повторную обработку сервером приложений
|
||||
if (e instanceof ServerError && e.sCode == SERR_UNAUTH) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user