ArgoWorkflow-DAG任务级重试
创始人
2024-09-13 05:00:47
0

Argo Workflow是一个开源的工作流引擎,可以在Kubernetes上管理容器化应用程序工作流。该引擎允许用户定义DAG工作流,其中任务可以是顺序的或并行的,并且可以使用Docker容器执行任务。

在DAG工作流中,当任务出现故障时,重试机制非常重要。Argo Workflow提供了多种重试策略,但默认情况下是任务级别的重试,即当任务失败时,仅重试该任务,而不影响其它任务。

下面是一个在DAG工作流中使用任务级别重试的示例:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-retry-
spec:
  entrypoint: dag
  templates:
  - name: retry-task
    retryStrategy:
      limit: 3     # 重试次数上限
    container:
      image: ubuntu
    inputs:
      parameters:
      - name: message
    command: ["/bin/bash", "-c"]
    args: ["echo {{inputs.parameters.message}} && exit 1 || true"]
  - name: dag
    dag:
      tasks:
      - name: task1
        template: retry-task
        arguments:
          parameters:
          - name: message
            value: "task1 failed"
      - name: task2
        depends: task1
        template: retry-task
        arguments:
          parameters:
          - name: message
            value: "task2 failed"

上述示例定义了一个带有两个任务的DAG工作流。当任务失败时,重试策略会尝试重演任务。任务级别的重试机制确保只有故障的任务被重试,而其它任务不受影响。

如果想要在整个DAG级别上执行重试,可以在spec部分添加podGCfailedPods属性。podGC指定重试策略,failedPods包含先前失败的Pod信息。下面是一个DAG级别重试的示例:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-retry-
spec:
  entrypoint: dag
  podGC:
    strategy: OnPodCompletion  # 重试策略,即只

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...