diff --git a/x-pack/plugins/task_manager/server/plugin.ts b/x-pack/plugins/task_manager/server/plugin.ts index b58b0665c10c0..4c506b73f60f1 100644 --- a/x-pack/plugins/task_manager/server/plugin.ts +++ b/x-pack/plugins/task_manager/server/plugin.ts @@ -116,6 +116,11 @@ export class TaskManagerPlugin startServicesPromise.then(({ elasticsearch }) => elasticsearch.client), }); + router.post({ path: '/api/task_manager/_stop', validate: false }, async (context, req, res) => { + this.taskPollingLifecycle!.stop(); + return res.ok({ body: `Aye, aye, captain` }); + }); + core.status.derivedStatus$.subscribe((status) => this.logger.debug(`status core.status.derivedStatus now set to ${status.level}`) ); diff --git a/x-pack/plugins/task_manager/server/polling_lifecycle.ts b/x-pack/plugins/task_manager/server/polling_lifecycle.ts index a452c8a3f82fb..659e34bb2e8ce 100644 --- a/x-pack/plugins/task_manager/server/polling_lifecycle.ts +++ b/x-pack/plugins/task_manager/server/polling_lifecycle.ts @@ -216,6 +216,10 @@ export class TaskPollingLifecycle { }); } + public stop() { + this.taskClaiming.excludedTaskTypes = ['*']; + } + public get events(): Observable { return this.events$; } diff --git a/x-pack/plugins/task_manager/server/queries/task_claiming.ts b/x-pack/plugins/task_manager/server/queries/task_claiming.ts index 1b4f0fdb73683..e9e05d4a0a901 100644 --- a/x-pack/plugins/task_manager/server/queries/task_claiming.ts +++ b/x-pack/plugins/task_manager/server/queries/task_claiming.ts @@ -121,7 +121,7 @@ export class TaskClaiming { private logger: Logger; private readonly taskClaimingBatchesByType: TaskClaimingBatches; private readonly taskMaxAttempts: Record; - private readonly excludedTaskTypes: string[]; + public excludedTaskTypes: string[]; private readonly unusedTypes: string[]; /**