Joe D
10/09/2023, 9:37 PM@task(retries=6, retry_delay_seconds=600)
def some_task:
Marvin
10/09/2023, 9:37 PMprefect.engine.signals.FAIL
signal. This will mark your task as failed. Here's how you might do it:
python
from prefect import task
from prefect.engine import signals
@task(retries=6, retry_delay_seconds=600)
def some_task():
try:
# Your task code here
pass
except Exception as e:
raise signals.FAIL(f"Task failed due to: {str(e)}")
This will cause your task to fail and be retried according to your retry settings. Isn't programming fun?Joe D
10/09/2023, 9:38 PMMarvin
10/09/2023, 9:38 PMNate
10/09/2023, 10:34 PMFailed
state directly
In [1]: from prefect import flow
In [2]: from prefect.states import Failed
In [3]: @flow(retries=1, retry_delay_seconds=0)
...: def terrible():
...: return Failed(message="worst flow ever")
...:
In [4]: terrible()
17:34:15.688 | INFO | prefect.engine - Created flow run 'ruddy-alpaca' for flow 'terrible'
17:34:15.993 | INFO | Flow run 'ruddy-alpaca' - Received non-final state 'AwaitingRetry' when proposing final state 'Failed' and will attempt to run again...
17:34:16.325 | ERROR | Flow run 'ruddy-alpaca' - Finished in state Failed('worst flow ever')
Joe D
10/09/2023, 10:36 PMNate
10/09/2023, 10:36 PMJoe D
10/09/2023, 10:37 PM