@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.mjs
CHANGED
|
@@ -1967,6 +1967,7 @@ var handleMessage = async (logger2, streamingFunctionWithConfigList, message, pr
|
|
|
1967
1967
|
var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
1968
1968
|
let messagesHandledByDLQ = 0;
|
|
1969
1969
|
let messagesWithoutDLQ = 0;
|
|
1970
|
+
let dlqErrors = 0;
|
|
1970
1971
|
for (const msg of messages) {
|
|
1971
1972
|
if (msg.dlq && msg.originalValue) {
|
|
1972
1973
|
const deadLetterRecord = {
|
|
@@ -1996,6 +1997,7 @@ var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
|
1996
1997
|
messagesHandledByDLQ++;
|
|
1997
1998
|
} catch (dlqError) {
|
|
1998
1999
|
logger2.error(`Failed to send to DLQ: ${dlqError}`);
|
|
2000
|
+
dlqErrors++;
|
|
1999
2001
|
}
|
|
2000
2002
|
} else if (!msg.dlq) {
|
|
2001
2003
|
messagesWithoutDLQ++;
|
|
@@ -2005,11 +2007,25 @@ var handleDLQForFailedMessages = async (logger2, producer, messages, error) => {
|
|
|
2005
2007
|
logger2.warn(`Cannot send to DLQ: original message value not available`);
|
|
2006
2008
|
}
|
|
2007
2009
|
}
|
|
2008
|
-
|
|
2010
|
+
const allMessagesHandled = messagesHandledByDLQ === messages.length && messagesWithoutDLQ === 0 && dlqErrors === 0;
|
|
2011
|
+
if (allMessagesHandled) {
|
|
2012
|
+
logger2.log(
|
|
2013
|
+
`All ${messagesHandledByDLQ} failed message(s) sent to DLQ, suppressing original error`
|
|
2014
|
+
);
|
|
2015
|
+
} else if (messagesHandledByDLQ > 0) {
|
|
2009
2016
|
logger2.warn(
|
|
2010
2017
|
`Partial DLQ success: ${messagesHandledByDLQ}/${messages.length} message(s) sent to DLQ`
|
|
2011
2018
|
);
|
|
2019
|
+
if (messagesWithoutDLQ > 0) {
|
|
2020
|
+
logger2.error(
|
|
2021
|
+
`Cannot handle batch failure: ${messagesWithoutDLQ} message(s) have no DLQ configured or missing original value`
|
|
2022
|
+
);
|
|
2023
|
+
}
|
|
2024
|
+
if (dlqErrors > 0) {
|
|
2025
|
+
logger2.error(`${dlqErrors} message(s) failed to send to DLQ`);
|
|
2026
|
+
}
|
|
2012
2027
|
}
|
|
2028
|
+
return allMessagesHandled;
|
|
2013
2029
|
};
|
|
2014
2030
|
var sendMessages = async (logger2, metrics, targetTopic, producer, messages) => {
|
|
2015
2031
|
if (messages.length === 0) return;
|
|
@@ -2028,8 +2044,15 @@ var sendMessages = async (logger2, metrics, targetTopic, producer, messages) =>
|
|
|
2028
2044
|
if (e instanceof Error) {
|
|
2029
2045
|
logError(logger2, e);
|
|
2030
2046
|
}
|
|
2031
|
-
await handleDLQForFailedMessages(
|
|
2032
|
-
|
|
2047
|
+
const allHandledByDLQ = await handleDLQForFailedMessages(
|
|
2048
|
+
logger2,
|
|
2049
|
+
producer,
|
|
2050
|
+
messages,
|
|
2051
|
+
e
|
|
2052
|
+
);
|
|
2053
|
+
if (!allHandledByDLQ) {
|
|
2054
|
+
throw e;
|
|
2055
|
+
}
|
|
2033
2056
|
}
|
|
2034
2057
|
};
|
|
2035
2058
|
var sendMessageMetrics = (logger2, metrics) => {
|