Configurar reintentos para una tarea de flujo de procesamiento

Puedes especificar si una tarea de una canalización debe volver a ejecutarse si falla configurando el número de reintentos de esa tarea. Puedes definir el número de intentos para volver a ejecutar la tarea si falla y el tiempo de espera entre los reintentos.

Usa el siguiente código de ejemplo para configurar la política de errores de una tarea de flujo de procesamiento llamada train_op mediante el método set_retry del SDK de Kubeflow Pipelines:

from kfp import dsl

@dsl.pipeline(name='custom-container-pipeline')
def pipeline():
  generate = generate_op()
  train = (
    train_op(
      training_data=generate.outputs['training_data'],
      test_data=generate.outputs['test_data'],
      config_file=generate.outputs['config_file'])
    .set_retry(
      num_retries=NUMBER_OF_RETRIES,
      backoff_duration='BACKOFF_DURATION',
      backoff_factor=BACKOFF_FACTOR,
      backoff_maxk_duration='BACKOFF_MAX_DURATION'
    )

Haz los cambios siguientes:

  • NUMBER_OF_RETRIES: número de veces que se debe reintentar la tarea si falla.

  • BACKOFF_DURATION: opcional. Tiempo de espera después de que la tarea falle antes de volver a intentarlo. Si no defines este parámetro, la duración se establece en 0s de forma predeterminada.

  • BACKOFF_FACTOR: opcional. Factor por el que se multiplica la duración del tiempo de espera en cada reintento posterior. Si no define este parámetro, el factor de retroceso se establece en 2.0 de forma predeterminada.

  • BACKOFF_MAX_DURATION: opcional. Duración máxima del tiempo de espera entre reintentos posteriores. Si no defines este parámetro, la duración máxima será 3600s de forma predeterminada.