Moose Stack

Moose Workflows

Cancelling Running Workflows

Cancel a Running Workflow

To stop a workflow before it has finished running, use the workflow cancel command.

Terminal
moose workflow cancel <workflow-name>

Implementing Cancelation Callbacks

For workflows that are running and have clean up operations to perform, you can implement a termination callback.

This is especially useful for any long running tasks that have open connections or subscriptions to other services that need to be closed:

workflows/workflows.ts
 
const task1 = new Task<Foo, void>({
  name: "task1",
  run: async (input: Foo) => {
    connection.open();
  },
  onCancel: async () => {
    // Clean up any resources
    connection.close();
  },
});
 
const myworkflow = new Workflow({
  name: "myworkflow",
  startingTask: task1,
  retries: 3,
});

Unlike the run() function, the onCancel callback does not receive any input arguments.