feat(sj_1.3.0-beta1): 重试任务新增任务失败告警

This commit is contained in:
wodeyangzipingpingwuqi 2024-12-18 16:30:08 +08:00
parent 7f4f1cc1ae
commit 771b1d7ee9
6 changed files with 31 additions and 8 deletions

View File

@ -51,7 +51,7 @@ export const retryNotifyScene: Record<Api.NotifyConfig.RetryNotifyScene, App.I18
2: 'page.notifyConfig.retryNotifyScene.maxRetryError', 2: 'page.notifyConfig.retryNotifyScene.maxRetryError',
3: 'page.notifyConfig.retryNotifyScene.clientReportError', 3: 'page.notifyConfig.retryNotifyScene.clientReportError',
4: 'page.notifyConfig.retryNotifyScene.clientComponentError', 4: 'page.notifyConfig.retryNotifyScene.clientComponentError',
5: 'page.notifyConfig.retryNotifyScene.retryTaskReachThreshold', 5: 'page.notifyConfig.retryNotifyScene.retryTaskFailError',
6: 'page.notifyConfig.retryNotifyScene.retryTaskEnterDeadLetter', 6: 'page.notifyConfig.retryNotifyScene.retryTaskEnterDeadLetter',
7: 'page.notifyConfig.retryNotifyScene.retryNoClientNodesError' 7: 'page.notifyConfig.retryNotifyScene.retryNoClientNodesError'
}; };

View File

@ -567,7 +567,7 @@ const local: App.I18n.Schema = {
maxRetryError: 'Maximum retry error count reached', maxRetryError: 'Maximum retry error count reached',
clientReportError: 'Client report error', clientReportError: 'Client report error',
clientComponentError: 'Client component error', clientComponentError: 'Client component error',
retryTaskReachThreshold: 'Retry task reach threshold', retryTaskFailError: 'Retry task fail error',
retryTaskEnterDeadLetter: 'Retry task enter dead letter', retryTaskEnterDeadLetter: 'Retry task enter dead letter',
retryNoClientNodesError: 'Retry task no client node' retryNoClientNodesError: 'Retry task no client node'
}, },

View File

@ -575,7 +575,7 @@ const local: App.I18n.Schema = {
maxRetryError: '场景重试失败数量超过阈值', maxRetryError: '场景重试失败数量超过阈值',
clientReportError: '客户端上报失败', clientReportError: '客户端上报失败',
clientComponentError: '客户端组件异常', clientComponentError: '客户端组件异常',
retryTaskReachThreshold: '任务重试失败数量超过阈值', retryTaskFailError: '任务重试失败',
retryTaskEnterDeadLetter: '任务重试失败进入死信队列', retryTaskEnterDeadLetter: '任务重试失败进入死信队列',
retryNoClientNodesError: '任务重试失败(没有可执行的客户端节点)' retryNoClientNodesError: '任务重试失败(没有可执行的客户端节点)'
}, },

View File

@ -610,7 +610,7 @@ declare namespace Api {
/** 任务类型 1、重试任务 2、回调任务、 3、JOB任务 4、WORKFLOW任务 */ /** 任务类型 1、重试任务 2、回调任务、 3、JOB任务 4、WORKFLOW任务 */
type SystemTaskType = 1 | 3 | 4; type SystemTaskType = 1 | 3 | 4;
/** 1、场景重试数量超过阈值 2、场景重试失败数量超过阈值 3、客户端上报失败 4、客户端组件异常 5、任务重试失败数量超过阈值 6、任务重试失败进入死信队列 7、任务重试失败没有可执行的客户端节点 */ /** 1、场景重试数量超过阈值 2、场景重试失败数量超过阈值 3、客户端上报失败 4、客户端组件异常 5、任务重试失败 6、任务重试失败进入死信队列 7、任务重试失败没有可执行的客户端节点 */
type RetryNotifyScene = 1 | 2 | 3 | 4 | 5 | 6 | 7; type RetryNotifyScene = 1 | 2 | 3 | 4 | 5 | 6 | 7;
/** 1、任务执行失败 2、客户端执行失败 3、没有可执行的客户端节点 */ /** 1、任务执行失败 2、客户端执行失败 3、没有可执行的客户端节点 */

View File

@ -775,7 +775,7 @@ declare namespace App {
maxRetryError: string; maxRetryError: string;
clientReportError: string; clientReportError: string;
clientComponentError: string; clientComponentError: string;
retryTaskReachThreshold: string; retryTaskFailError: string;
retryTaskEnterDeadLetter: string; retryTaskEnterDeadLetter: string;
retryNoClientNodesError: string; retryNoClientNodesError: string;
}; };

View File

@ -53,6 +53,10 @@ const visible = defineModel<boolean>('visible', {
default: false default: false
}); });
const retryNotifyStatusDisable = defineModel<boolean>('retryNotifyStatusDisable', {
default: true
});
const retrySceneDisable = defineModel<boolean>('retrySceneDisable', { const retrySceneDisable = defineModel<boolean>('retrySceneDisable', {
default: true default: true
}); });
@ -107,7 +111,7 @@ function createDefaultModel(): Model {
notifyStatus: 1, notifyStatus: 1,
notifyScene: null, notifyScene: null,
notifyThreshold: 16, notifyThreshold: 16,
rateLimiterStatus: 0, rateLimiterStatus: 1,
rateLimiterThreshold: 100, rateLimiterThreshold: 100,
description: '' description: ''
}; };
@ -140,6 +144,7 @@ function handleUpdateModelWhenEdit() {
if (props.operateType === 'add') { if (props.operateType === 'add') {
Object.assign(model, createDefaultModel()); Object.assign(model, createDefaultModel());
retrySceneDisable.value = true; retrySceneDisable.value = true;
retryNotifyStatusDisable.value = true;
return; return;
} }
@ -239,6 +244,17 @@ async function systemTaskTypeChange(value: number | null) {
}) as Api.Workflow.Workflow[]; }) as Api.Workflow.Workflow[];
notifySceneOptions.value = translateOptions(workflowNotifySceneOptions); notifySceneOptions.value = translateOptions(workflowNotifySceneOptions);
} }
await retrySceneChange(model.notifyScene);
let notifySceneEmpty = false;
notifySceneOptions.value.map(i => {
if (i.value === model.notifyScene) {
notifySceneEmpty = true;
}
return String(i.value);
});
if (!notifySceneEmpty) {
model.notifyScene = null;
}
} }
async function retrySceneChange( async function retrySceneChange(
@ -248,7 +264,14 @@ async function retrySceneChange(
| Api.NotifyConfig.WorkflowNotifyScene | Api.NotifyConfig.WorkflowNotifyScene
| null | null
) { ) {
retrySceneDisable.value = !(value === 5 || value === 6); retrySceneDisable.value = !(model.systemTaskType === 1 && (value === 1 || value === 2 || value === 5 || value === 6));
retryNotifyStatusDisable.value = retrySceneDisable.value;
model.notifyStatus = retrySceneDisable.value ? 0 : 1;
if (value === 7) {
model.notifyThreshold = 0;
model.rateLimiterStatus = 1;
retrySceneDisable.value = true;
}
} }
function groupNameUpdate(groupName: string) { function groupNameUpdate(groupName: string) {
@ -303,7 +326,7 @@ watch(visible, () => {
<NGrid cols="2 s:1 m:2" responsive="screen" x-gap="20"> <NGrid cols="2 s:1 m:2" responsive="screen" x-gap="20">
<NGi> <NGi>
<NFormItem :label="$t('page.notifyConfig.notifyStatus')" path="notifyStatus"> <NFormItem :label="$t('page.notifyConfig.notifyStatus')" path="notifyStatus">
<NRadioGroup v-model:value="model.notifyStatus" name="notifyStatus"> <NRadioGroup v-model:value="model.notifyStatus" name="notifyStatus" :disabled="retryNotifyStatusDisable">
<NSpace> <NSpace>
<NRadio <NRadio
v-for="item in enableStatusNumberOptions" v-for="item in enableStatusNumberOptions"