Files
antigravity-skills-reference/web-app/public/skills/dbos-python/references/client-enqueue.md

1.4 KiB

title, impact, impactDescription, tags
title impact impactDescription tags
Enqueue Workflows from External Applications HIGH Enables decoupled architecture with separate API and worker services client, enqueue, workflow, external

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