mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2026-01-01 06:11:02 -06:00
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import time
|
|
from hatchet_sdk import Hatchet, Context
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
hatchet = Hatchet(debug=True)
|
|
|
|
@hatchet.workflow(on_events=["user:create"],schedule_timeout="10m")
|
|
class MyWorkflow:
|
|
def __init__(self):
|
|
self.my_value = "test"
|
|
|
|
@hatchet.step()
|
|
def step1(self, context : Context):
|
|
print("starting step1", time.strftime("%H:%M:%S", time.localtime()), context.workflow_input())
|
|
overrideValue = context.playground("prompt", "You are an AI assistant...")
|
|
time.sleep(5)
|
|
# pretty-print time
|
|
print("executed step1", time.strftime("%H:%M:%S", time.localtime()))
|
|
return {
|
|
"step1": overrideValue,
|
|
}
|
|
|
|
@hatchet.step()
|
|
def step2(self, context : Context):
|
|
print("starting step2", time.strftime("%H:%M:%S", time.localtime()), context.workflow_input())
|
|
time.sleep(5)
|
|
print("executed step2", time.strftime("%H:%M:%S", time.localtime()))
|
|
return {
|
|
"step2": "step2",
|
|
}
|
|
|
|
@hatchet.step(parents=["step1", "step2"])
|
|
def step3(self, context : Context):
|
|
print("executed step3", time.strftime("%H:%M:%S", time.localtime()), context.workflow_input(), context.step_output("step1"), context.step_output("step2"))
|
|
return {
|
|
"step3": "step3",
|
|
}
|
|
|
|
@hatchet.step(parents=["step1", "step3"])
|
|
def step4(self, context : Context):
|
|
print("executed step4", time.strftime("%H:%M:%S", time.localtime()), context.workflow_input(), context.step_output("step1"), context.step_output("step3"))
|
|
return {
|
|
"step4": "step4",
|
|
}
|
|
|
|
workflow = MyWorkflow()
|
|
worker = hatchet.worker('test-worker')
|
|
worker.register_workflow(workflow)
|
|
|
|
worker.start() |