Starting Tasks
Once a task template is planned in the UI and services are implemented, you can start tasks programmatically.
Installation
Section titled “Installation”npm install @requence/taskpip install requenceBasic Usage
Section titled “Basic Usage”import { createTask } from '@requence/task'
const result = await createTask({ taskTemplate: 'my-template', input: { name: 'World' },})
console.log(result.result) // The final output of the taskfrom requence.task import Task
task = Task( task_template="my-template", input={"name": "World"},)
result = task.sync.result # Blocks until the task completesprint(result.result) # The final output of the taskTask Handle
Section titled “Task Handle”createTask / Task returns a task handle with methods to access task metadata without waiting for the task to finish:
const task = createTask({ taskTemplate: 'my-template', input: {} })
const taskId = await task.getTaskId() // Resolves as soon as the task is createdconst taskUrl = await task.getTaskUrl() // URL to view the task in the Requence UIawait task.abort('No longer needed') // Abort the running task
// Await the final result only when neededconst result = await taskThe task handle is also an AsyncIterable — see Streaming Updates.
task = Task(task_template="my-template", input={})
# Synchronous accesstask_id = task.sync.id # Blocks until the task is createdtask_url = task.sync.url # URL to view the task in the Requence UItask.abort("No longer needed")
# Async accesstask_id = await task.task_idtask_url = await task.task_urlresult = await task.resultOptions
Section titled “Options”const result = await createTask({ taskTemplate: 'my-template', // Required — name of the task template input: { /* ... */ }, // Required if the template defines an input schema name: 'Daily Import', // Optional — human-readable task name priority: 5, // Optional — 0 (low) to 10 (high), default: 5})task = Task( task_template="my-template", # Required — name of the task template input={"key": "value"}, # Required if the template defines an input schema name="Daily Import", # Optional — human-readable task name priority=5, # Optional — 0 (low) to 10 (high), default: 5)Result
Section titled “Result”The resolved result contains:
{ input: unknown // The input you provided result: unknown // The final task output taskId: string // Unique task identifier taskUrl: string // URL to view the task in the Requence UI getNodeData(alias) // Get output from a specific node by alias getNodeError(alias) // Get error from a specific node by alias}result.input # The input you providedresult.result # The final task outputresult.task_id # Unique task identifierresult.task_url # URL to view the task in the Requence UIresult.get_node_data(alias) # Get output from a specific node by aliasresult.get_node_error(alias) # Get error from a specific node by aliasAborting a Task
Section titled “Aborting a Task”const task = createTask({ taskTemplate: 'my-template', input: {} })
// Abort after some conditionawait task.abort('No longer needed')Or use the standalone abortTask function:
import { abortTask } from '@requence/task'
await abortTask({ taskId: 'some-task-id', reason: 'Cancelled by user',})task = Task(task_template="my-template", input={})
# Abort after some conditiontask.abort("No longer needed")Or use the standalone abort_task function:
from requence.task import abort_task
abort_task(task_id="some-task-id", reason="Cancelled by user")Next Steps
Section titled “Next Steps”Learn about Streaming Updates to monitor task progress in real-time.