Made shut down stale tasks configurable.
Signed-off-by: Bogdan Nechyporenko <bnechyporenko@bol.com>
This commit is contained in:
committed by
Fredrik Adelöw
parent
a72143c79b
commit
d16e45a352
@@ -304,6 +304,14 @@ scaffolder:
|
||||
# email: scaffolder@backstage.io
|
||||
# Use to customize the default commit message when new components are created
|
||||
# defaultCommitMessage: 'Initial commit'
|
||||
#
|
||||
# Use to run check on stale tasks every minute. By default, it is '*/5 * * * *', what means to run every 5 minutes.
|
||||
# staleTasks:
|
||||
# cron: * * * * *
|
||||
#
|
||||
# Use to consider the task stale when no task heartbeat during 2 minutes. By default, it is 24 hours.
|
||||
# staleTasks:
|
||||
# timeout: 120 # seconds
|
||||
|
||||
auth:
|
||||
### Add auth.keyStore.provider to more granularly control how to store JWK data when running
|
||||
|
||||
@@ -14,14 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TaskContext, TaskBroker, WorkflowRunner } from './types';
|
||||
import { WorkflowRunner } from './types';
|
||||
import {
|
||||
TaskContext,
|
||||
TaskBroker,
|
||||
TemplateFilter,
|
||||
TemplateGlobal,
|
||||
} from '@backstage/plugin-scaffolder-node';
|
||||
import PQueue from 'p-queue';
|
||||
import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner';
|
||||
import { Logger } from 'winston';
|
||||
import { TemplateActionRegistry } from '../actions';
|
||||
import { ScmIntegrations } from '@backstage/integration';
|
||||
import { assertError } from '@backstage/errors';
|
||||
import { TemplateFilter, TemplateGlobal } from '../../lib';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
/**
|
||||
* TaskWorkerOptions
|
||||
|
||||
@@ -107,7 +107,3 @@ export async function findTemplate(options: {
|
||||
|
||||
return template as TemplateEntityV1beta3;
|
||||
}
|
||||
|
||||
export type TemplateTransform = (
|
||||
template: TemplateEntityV1beta3,
|
||||
) => TemplateEntityV1beta3;
|
||||
|
||||
@@ -38,7 +38,8 @@ import {
|
||||
stringifyEntityRef,
|
||||
UserEntity,
|
||||
} from '@backstage/catalog-model';
|
||||
import { createRouter, DatabaseTaskStore, TaskBroker } from '../index';
|
||||
import { createRouter, DatabaseTaskStore } from '../index';
|
||||
import { TaskBroker } from '@backstage/plugin-scaffolder-node';
|
||||
import { StorageTaskBroker } from '../scaffolder/tasks/StorageTaskBroker';
|
||||
import {
|
||||
IdentityApiGetIdentityRequest,
|
||||
|
||||
@@ -48,11 +48,14 @@ import Router from 'express-promise-router';
|
||||
import { validate } from 'jsonschema';
|
||||
import { Logger } from 'winston';
|
||||
import { z } from 'zod';
|
||||
import { TemplateFilter, TemplateGlobal } from '../lib';
|
||||
import {
|
||||
TaskBroker,
|
||||
TemplateFilter,
|
||||
TemplateGlobal,
|
||||
} from '@backstage/plugin-scaffolder-node';
|
||||
import {
|
||||
createBuiltinActions,
|
||||
DatabaseTaskStore,
|
||||
TaskBroker,
|
||||
TaskWorker,
|
||||
TemplateActionRegistry,
|
||||
} from '../scaffolder';
|
||||
@@ -256,11 +259,18 @@ export async function createRouter(
|
||||
if (scheduler && databaseTaskStore.listStaleTasks) {
|
||||
await scheduler.scheduleTask({
|
||||
id: 'close_stale_tasks',
|
||||
frequency: { cron: '*/5 * * * *' }, // every 5 minutes, also supports Duration
|
||||
frequency: {
|
||||
cron:
|
||||
options.config.getOptionalString('scaffolder.staleTasks.cron') ??
|
||||
'*/5 * * * *',
|
||||
}, // every 5 minutes, also supports Duration
|
||||
timeout: { minutes: 15 },
|
||||
fn: async () => {
|
||||
const { tasks } = await databaseTaskStore.listStaleTasks({
|
||||
timeoutS: 86400,
|
||||
timeoutS:
|
||||
options.config.getOptionalNumber(
|
||||
'scaffolder.staleTasks.timeout',
|
||||
) ?? 86400,
|
||||
});
|
||||
|
||||
for (const task of tasks) {
|
||||
|
||||
Reference in New Issue
Block a user