Keep Going on Failures¶
By default, a workflow stops when a task fails. Use keep_going=True to continue executing the remaining tasks even if one fails. Failed tasks are marked with TypeStatus.FAILED but do not block subsequent steps.
Example¶
from dotflow import DotFlow, action
@action
def extract_task():
return "extract"
@action
def transform_task(previous_context):
print(previous_context.storage, "transform")
raise Exception("Fail!")
@action
def load_task(previous_context):
print(previous_context.storage, "load")
return "load"
def main():
workflow = DotFlow()
workflow.task.add(step=extract_task)
workflow.task.add(step=transform_task)
workflow.task.add(step=load_task)
workflow.start(keep_going=True)
return workflow
if __name__ == "__main__":
main()