feat: concurrency groups (#135)

* first pass at moving controllers around

* feat: concurrency limits for strategy CANCEL_IN_PROGRESS

* fix: linting

* chore: bump python sdk version
This commit is contained in:
abelanger5
2024-01-29 21:00:28 -08:00
committed by GitHub
parent 9841aa52d7
commit d63b66a837
72 changed files with 4777 additions and 924 deletions
@@ -0,0 +1,13 @@
from hatchet_sdk import new_client
from dotenv import load_dotenv
load_dotenv()
client = new_client()
client.event.push(
"concurrency-test",
{
"test": "test"
}
)
@@ -0,0 +1,32 @@
from hatchet_sdk import Hatchet
from dotenv import load_dotenv
load_dotenv()
hatchet = Hatchet(debug=True)
@hatchet.workflow(on_events=["concurrency-test"])
class ConcurrencyDemoWorkflow:
def __init__(self):
self.my_value = "test"
@hatchet.concurrency(max_runs=5)
def concurrency(self, context) -> str:
return "concurrency-key"
@hatchet.step()
def step1(self, context):
print("executed step1")
pass
@hatchet.step(parents=["step1"],timeout='4s')
def step2(self, context):
print("started step2")
context.sleep(1)
print("finished step2")
workflow = ConcurrencyDemoWorkflow()
worker = hatchet.worker('concurrency-demo-worker', max_threads=4)
worker.register_workflow(workflow)
worker.start()