mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-03-18 02:33:00 -05:00
65 lines
1.6 KiB
Python
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)),
|
|
]
|
|
)
|
|
# !!
|