Callbacks¶
You’ll often want to run a Job in response to other events in the workflow. For example, you may want to run a Job if the workflow finishes, even if it failed. You can accomplish this using workflow callbacks.
from hymir.workflow import Workflow, job, Chain
from hymir.job import Failure
@job()
def dummy_job():
# Doesn't do anything but fail
return Failure()
@job()
def on_finished():
# Always called, no matter what.
print("Workflow finished")
workflow = Workflow(
Chain(
dummy_job(),
)
)
workflow.on(Workflow.Callbacks.ON_FINISHED, on_finished())