Adeel Shakir
09/18/2024, 1:05 PMMarvin
09/18/2024, 1:06 PMpython
from prefect import flow, task
from prefect.tasks import task_input_hash
from datetime import timedelta
@task(retries=3, retry_delay_seconds=60)
def failing_task():
raise ValueError("This task fails!")
@flow
def my_flow():
failing_task()
my_flow()
2. Setting up a Slack notification:
You'll need a Slack Webhook URL for notifications. Create a Slack notification block in Prefect and use it to notify on task failure.
This should be done in your Prefect Cloud or Prefect Server UI:
- Create a Slack Webhook Block:
- Go to the Prefect UI -> Blocks -> Create a new block -> Notifications -> Slack Webhook
Then, configure your flow to send notifications:
python
from prefect import flow, task
from prefect.notifications import SlackWebhook
@task(retries=3, retry_delay_seconds=60)
def failing_task():
raise ValueError("This task fails!")
@flow
def my_flow():
try:
failing_task()
except Exception as e:
slack_webhook = SlackWebhook.load("YOUR_BLOCK_NAME")
slack_webhook.notify("Task failed with error: " + str(e))
raise
my_flow()
Some useful documentation links:
- Prefect 2.0 Notifications
- Task Retries
GitHub issues and related topics:
- Add ability to set up notifications from the Python API
- Retry Cloning Of Remote Repository Upon Failure
- Update failure notifications
These references should help you set up task failure alerts in your flow using Prefect 2.x. Let me know if you need any more help!