@514labs/moose-lib 0.6.252-ci-1-g901efb04 → 0.6.252-ci-2-g41538689
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/moose-runner.js +26 -3
- package/dist/moose-runner.js.map +1 -1
- package/dist/moose-runner.mjs +26 -3
- package/dist/moose-runner.mjs.map +1 -1
- package/package.json +1 -1
package/dist/moose-runner.js
CHANGED
|
@@ -1980,6 +1980,7 @@ var handleMessage = async (logger2, streamingFunctionWithConfigList, message, pr
|
|
|
1980
1980
|
var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
1981
1981
|
let messagesHandledByDLQ = 0;
|
|
1982
1982
|
let messagesWithoutDLQ = 0;
|
|
1983
|
+
let dlqErrors = 0;
|
|
1983
1984
|
for (const msg of messages) {
|
|
1984
1985
|
if (msg.dlq && msg.originalValue) {
|
|
1985
1986
|
const deadLetterRecord = {
|
|
@@ -2009,6 +2010,7 @@ var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
|
2009
2010
|
messagesHandledByDLQ++;
|
|
2010
2011
|
} catch (dlqError) {
|
|
2011
2012
|
logger2.error(`Failed to send to DLQ: ${dlqError}`);
|
|
2013
|
+
dlqErrors++;
|
|
2012
2014
|
}
|
|
2013
2015
|
} else if (!msg.dlq) {
|
|
2014
2016
|
messagesWithoutDLQ++;
|
|
@@ -2018,11 +2020,25 @@ var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
|
2018
2020
|
logger2.warn(`Cannot send to DLQ: original message value not available`);
|
|
2019
2021
|
}
|
|
2020
2022
|
}
|
|
2021
|
-
|
|
2023
|
+
const allMessagesHandled = messagesHandledByDLQ === messages.length && messagesWithoutDLQ === 0 && dlqErrors === 0;
|
|
2024
|
+
if (allMessagesHandled) {
|
|
2025
|
+
logger2.log(
|
|
2026
|
+
`All ${messagesHandledByDLQ} failed message(s) sent to DLQ, suppressing original error`
|
|
2027
|
+
);
|
|
2028
|
+
} else if (messagesHandledByDLQ > 0) {
|
|
2022
2029
|
logger2.warn(
|
|
2023
2030
|
`Partial DLQ success: ${messagesHandledByDLQ}/${messages.length} message(s) sent to DLQ`
|
|
2024
2031
|
);
|
|
2032
|
+
if (messagesWithoutDLQ > 0) {
|
|
2033
|
+
logger2.error(
|
|
2034
|
+
`Cannot handle batch failure: ${messagesWithoutDLQ} message(s) have no DLQ configured or missing original value`
|
|
2035
|
+
);
|
|
2036
|
+
}
|
|
2037
|
+
if (dlqErrors > 0) {
|
|
2038
|
+
logger2.error(`${dlqErrors} message(s) failed to send to DLQ`);
|
|
2039
|
+
}
|
|
2025
2040
|
}
|
|
2041
|
+
return allMessagesHandled;
|
|
2026
2042
|
};
|
|
2027
2043
|
var sendMessages = async (logger2, metrics, targetTopic, producer, messages) => {
|
|
2028
2044
|
if (messages.length === 0) return;
|
|
@@ -2041,8 +2057,15 @@ var sendMessages = async (logger2, metrics, targetTopic, producer, messages) =>
|
|
|
2041
2057
|
if (e instanceof Error) {
|
|
2042
2058
|
logError(logger2, e);
|
|
2043
2059
|
}
|
|
2044
|
-
await handleDLQForFailedMessages(
|
|
2045
|
-
|
|
2060
|
+
const allHandledByDLQ = await handleDLQForFailedMessages(
|
|
2061
|
+
logger2,
|
|
2062
|
+
producer,
|
|
2063
|
+
messages,
|
|
2064
|
+
e
|
|
2065
|
+
);
|
|
2066
|
+
if (!allHandledByDLQ) {
|
|
2067
|
+
throw e;
|
|
2068
|
+
}
|
|
2046
2069
|
}
|
|
2047
2070
|
};
|
|
2048
2071
|
var sendMessageMetrics = (logger2, metrics) => {
|