434 Client Enqueue 69218eee

Enqueue Workflows from External Applications

tools-only Updated 7 repo stars

File contents

Enqueue Workflows from External Applications

Use client.enqueue() to submit workflows from outside the DBOS application. Must specify workflow and queue names explicitly.

Incorrect (missing required options):

from dbos import DBOSClient

client = DBOSClient(system_database_url=db_url)

# Missing workflow_name and queue_name!
handle = client.enqueue({}, task_data)

Correct (with required options):

from dbos import DBOSClient, EnqueueOptions

client = DBOSClient(system_database_url=db_url)

options: EnqueueOptions = {
    "workflow_name": "process_task",  # Required
    "queue_name": "task_queue",       # Required
}
handle = client.enqueue(options, task_data)
result = handle.get_result()
client.destroy()

With optional parameters:

options: EnqueueOptions = {
    "workflow_name": "process_task",
    "queue_name": "task_queue",
    "workflow_id": "custom-id-123",
    "workflow_timeout": 300,
    "deduplication_id": "user-123",
    "priority": 1,
}

Limitation: Cannot enqueue workflows that are methods on Python classes.

Reference: DBOSClient.enqueue

tools-only/X-Skills/tree/main/automation/workflow/434-client-enqueue_69218eee commit d071a22de3

Frequently asked questions

npx skillmds@latest add tools-only/434-client-enqueue-69218eee