-
Notifications
You must be signed in to change notification settings - Fork 4
/
retries.py
33 lines (22 loc) · 873 Bytes
/
retries.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import httpx
from prefect import flow, task
# Flows and tasks can be retried on failure
# Optionally provide a retry_delay_seconds to the decorator
# Docs: https://docs.prefect.io/latest/concepts/tasks/#retries
# Docs: https://docs.prefect.io/latest/concepts/flows/#flow-settings
@task(retries=4, retry_delay_seconds=0.1)
def fetch_cat_fact():
cat_fact = httpx.get("https://httpstat.us/Random/200,500", verify=False)
if cat_fact.status_code >= 400:
raise Exception()
print(cat_fact.text)
@flow(retries=1)
def fetch():
fetch_cat_fact()
if __name__ == "__main__":
fetch()
# Advanced:
# Optionally set Exponential Backoff
# Docs: https://docs.prefect.io/latest/api-ref/prefect/tasks/#prefect.tasks.exponential_backoff
# Optionally set up Custom Retry Behavior
# Docs: https://docs.prefect.io/latest/concepts/tasks/#custom-retry-behavior