Workflow Client
This feature is not yet available in workflow-py. See our Roadmap for feature parity plans and Changelog for updates.
Workflow client allows you to interact with your workflow runs. Currently, it has three basic functionality:
- cancel a running workflow run
- notify a workflow run waiting for an event
- get workflow runs waiting for some event
We are planning to add more functionality in the future. See the roadmap for more details.
Trigger Workflow
Using the trigger
method, you can start a workflow run and get its run id.
If workflowRunId
parameter isn’t passed, a run id will be generated randomly. If workflowRunId
is passed, wfr_
prefix will be added to it.
For other alternatives of starting a workflow, see the documentation on starting a workflow run.
Get Worklfow Logs
Using the log
method, you can use the List Workflow Runs API:
All the parameters above are optional.
The response includes cursor
and runs
. Using the cursor
, you can continue the search later.
runs
will be a list of runs. Each run has these fields:
workflowRunId
: ID of the workflowworkflowUrl
: URL of the workflowworkflowState
: State of the workflow run.workflowRunCreatedAt
: number; Time when the workflow run started (as unix timestamp)workflowRunCompletedAt
; If run has completed, time when workflow run completed (as unix timestamp)failureFunction
: Information on the message published when the workflow failed andfailureUrl
orfailureFunction
were calledsteps
: List of steps showing the progress of the workflow
The steps
field contains a list of steps. Each step is in one of the following three formats:
Cancel Workflow Runs
There are multiple ways you can cancel workflow runs:
- pass one or more workflow run ids to cancel them
- pass a workflow url to cancel all runs starting with this url
- cancel all pending or active workflow runs
Cancel a set of workflow runs
Cancel workflows starting with a url
If you have an endpoint called https://your-endpoint.com
and you
want to cancel all workflow runs on it, you can use urlStartingWith
.
Note that this will cancel workflows in all endpoints under
https://your-endpoint.com
.
Cancel all workflows
To cancel all pending and currently running workflows, you can do it like this:
Notify Waiting Workflow
To notify a workflow waiting for an event, you can use the notify
method:
The data passed in eventData
will be available to the workflow run in the
eventData
field of the context.waitForEvent
method.
Get Waiters of Event
To get the list of waiters for some event id, you can use the getWaiters
method:
Result will be a list of Waiter
objects:
Was this page helpful?