feat: support maxRuns parameter on workers (#195)

* feat: round robin queueing

* feat: configurable max runs per worker

* fix: address PR review

* docs for max runs and group round robin
This commit is contained in:
abelanger5
2024-02-25 21:48:46 -08:00
committed by GitHub
parent 2d625fec81
commit 6ea38a99f2
46 changed files with 659 additions and 373 deletions
@@ -23,7 +23,7 @@ class ConcurrencyDemoWorkflowRR:
pass
workflow = ConcurrencyDemoWorkflowRR()
worker = hatchet.worker('concurrency-demo-worker-rr', max_threads=1)
worker = hatchet.worker('concurrency-demo-worker-rr', max_runs=1)
worker.register_workflow(workflow)
worker.start()
@@ -26,7 +26,7 @@ class ConcurrencyDemoWorkflow:
print("finished step2")
workflow = ConcurrencyDemoWorkflow()
worker = hatchet.worker('concurrency-demo-worker', max_threads=4)
worker = hatchet.worker('concurrency-demo-worker', max_runs=4)
worker.register_workflow(workflow)
worker.start()
+3 -1
View File
@@ -1,3 +1,4 @@
import time
from hatchet_sdk import Hatchet, Context
from dotenv import load_dotenv
@@ -13,7 +14,7 @@ class MyWorkflow:
@hatchet.step()
def step1(self, context : Context):
overrideValue = context.playground("prompt", "You are an AI assistant...")
time.sleep(5)
print("executed step1", context.workflow_input())
return {
"step1": overrideValue,
@@ -22,6 +23,7 @@ class MyWorkflow:
@hatchet.step()
def step2(self, context : Context):
print("executed step2", context.workflow_input())
time.sleep(5)
return {
"step2": "step2",
}
+1 -1
View File
@@ -40,7 +40,7 @@ class ManualTriggerWorkflow:
workflow = ManualTriggerWorkflow()
worker = hatchet.worker('manual-worker', max_threads=4)
worker = hatchet.worker('manual-worker', max_runs=4)
worker.register_workflow(workflow)
worker.start()
+1 -1
View File
@@ -29,7 +29,7 @@ class MyWorkflow:
print("finished step2")
workflow = MyWorkflow()
worker = hatchet.worker('test-worker', max_threads=4)
worker = hatchet.worker('test-worker', max_runs=4)
worker.register_workflow(workflow)
worker.start()
+1 -1
View File
@@ -21,7 +21,7 @@ class TimeoutWorkflow:
raise e
workflow = TimeoutWorkflow()
worker = hatchet.worker('timeout-worker', max_threads=4)
worker = hatchet.worker('timeout-worker', max_runs=4)
worker.register_workflow(workflow)
worker.start()