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.