Files
hatchet/sdks/python/examples/durable_event/worker.py
abelanger5 9c1e6ecf2b docs: durable execution + update self-hosted defaults to use v1 (#1484)
* docs: update self-hosted defaults to use v1

* docs: durable execution

* rm dep

* lint: run black

* redundant readme

* more wording

* other small things

* isort
2025-04-03 11:29:59 -04:00

48 lines
1.0 KiB
Python

from hatchet_sdk import DurableContext, EmptyModel, Hatchet, UserEventCondition
hatchet = Hatchet(debug=True)
EVENT_KEY = "user:update"
# ❓ Durable Event
@hatchet.durable_task(name="DurableEventTask")
async def durable_event_task(input: EmptyModel, ctx: DurableContext) -> None:
res = await ctx.aio_wait_for(
"event",
UserEventCondition(event_key="user:update"),
)
print("got event", res)
# !!
@hatchet.durable_task(name="DurableEventWithFilterTask")
async def durable_event_task_with_filter(
input: EmptyModel, ctx: DurableContext
) -> None:
# ❓ Durable Event With Filter
res = await ctx.aio_wait_for(
"event",
UserEventCondition(
event_key="user:update", expression="input.user_id == '1234'"
),
)
# !!
print("got event", res)
def main() -> None:
worker = hatchet.worker(
"durable-event-worker",
workflows=[durable_event_task, durable_event_task_with_filter],
)
worker.start()
if __name__ == "__main__":
main()