Files
hatchet/sdks/python/examples/scheduled/programatic-async.py
Mohammed Nafees 07124bd154 all python async
2026-03-16 13:13:01 +01:00

65 lines
1.6 KiB
Python

from datetime import datetime, timedelta, timezone
from hatchet_sdk import Hatchet
from hatchet_sdk.clients.rest.models.scheduled_run_status import ScheduledRunStatus
hatchet = Hatchet()
async def create_scheduled() -> None:
# > Create
scheduled_run = await hatchet.scheduled.aio_create(
workflow_name="simple-workflow",
trigger_at=datetime.now(tz=timezone.utc) + timedelta(seconds=10),
input={
"data": "simple-workflow-data",
},
additional_metadata={
"customer_id": "customer-a",
},
)
scheduled_run.metadata.id # the id of the scheduled run trigger
# !!
# > Reschedule
await hatchet.scheduled.aio_update(
scheduled_id=scheduled_run.metadata.id,
trigger_at=datetime.now(tz=timezone.utc) + timedelta(hours=1),
)
# !!
# > Delete
await hatchet.scheduled.aio_delete(scheduled_id=scheduled_run.metadata.id)
# !!
# > List
await hatchet.scheduled.aio_list()
# !!
# > Get
scheduled_run = await hatchet.scheduled.aio_get(
scheduled_id=scheduled_run.metadata.id
)
# !!
id = scheduled_run.metadata.id
# > Bulk Delete
await hatchet.scheduled.aio_bulk_delete(scheduled_ids=[id])
await hatchet.scheduled.aio_bulk_delete(
workflow_id="workflow_id",
statuses=[ScheduledRunStatus.SCHEDULED],
additional_metadata={"customer_id": "customer-a"},
)
# !!
# > Bulk Reschedule
await hatchet.scheduled.aio_bulk_update(
[
(id, datetime.now(tz=timezone.utc) + timedelta(hours=2)),
]
)
# !!