Vous pouvez spécifier si une tâche de pipeline doit être réexécutée en cas d'échec en configurant le nombre de nouvelles tentatives pour cette tâche. Vous pouvez définir le nombre de tentatives pour relancer la tâche en cas d'échec, ainsi que le délai entre les tentatives.
Utilisez l'exemple de code suivant pour configurer la règle d'échec d'une tâche de pipeline nommée train_op à l'aide de la méthode set_retry dans le SDK 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'
)
Remplacez les éléments suivants :
NUMBER_OF_RETRIES : nombre de fois où la tâche doit être relancée en cas d'échec.
BACKOFF_DURATION : facultatif. Durée d'attente après l'échec de la tâche avant de réessayer. Si vous ne définissez pas ce paramètre, la durée est définie par défaut sur
0s.BACKOFF_FACTOR : facultatif. Facteur par lequel la durée d'intervalle entre les tentatives est multipliée pour chaque nouvelle tentative. Si vous ne définissez pas ce paramètre, le facteur de temporisation est défini par défaut sur
2.0.BACKOFF_MAX_DURATION : facultatif. Durée maximale de l'intervalle entre les nouvelles tentatives. Si vous ne définissez pas ce paramètre, la durée maximale est définie par défaut sur
3600s.