Add cancelTask to SchedulerService for cancelling running tasks
Adds the ability to cancel currently running scheduled tasks via a new cancelTask method on the SchedulerService interface. For global (distributed) tasks, the database lock is released and a periodic liveness check detects the lost ticket and aborts the task function's AbortSignal. For local tasks, the abort signal is triggered directly. Also adds a REST endpoint at POST /.backstage/scheduler/v1/tasks/:id/cancel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Fredrik Adelöw <freben@spotify.com>
This commit is contained in:
@@ -304,6 +304,16 @@ export interface SchedulerService {
|
||||
*/
|
||||
triggerTask(id: string): Promise<void>;
|
||||
|
||||
/**
|
||||
* Cancels a currently running task by ID, marking it as idle.
|
||||
*
|
||||
* If the task doesn't exist, a NotFoundError is thrown. If the task is
|
||||
* not currently running, a ConflictError is thrown.
|
||||
*
|
||||
* @param id - The task ID
|
||||
*/
|
||||
cancelTask(id: string): Promise<void>;
|
||||
|
||||
/**
|
||||
* Schedules a task function for recurring runs.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user