From f60c94b5cc016b602b9f6ef3f7440701b3341890 Mon Sep 17 00:00:00 2001 From: Johan Haals Date: Tue, 3 May 2022 13:39:54 +0200 Subject: [PATCH] Update task schedule examples Signed-off-by: Johan Haals --- docs/features/search/getting-started.md | 27 +++++++++---------- .../software-catalog/external-integrations.md | 5 ++-- docs/integrations/aws-s3/discovery.md | 4 +-- docs/integrations/gerrit/discovery.md | 4 +-- docs/integrations/ldap/org.md | 4 +-- packages/backend-tasks/README.md | 3 +-- packages/backend/src/plugins/search.ts | 7 +++-- .../packages/backend/package.json.hbs | 1 - .../backend/src/plugins/search.ts.hbs | 7 +++-- 9 files changed, 27 insertions(+), 35 deletions(-) diff --git a/docs/features/search/getting-started.md b/docs/features/search/getting-started.md index 1557a29b53..66540bd096 100644 --- a/docs/features/search/getting-started.md +++ b/docs/features/search/getting-started.md @@ -149,7 +149,6 @@ import { import { PluginEnvironment } from '../types'; import { DefaultCatalogCollator } from '@backstage/plugin-catalog-backend'; import { Router } from 'express'; -import { Duration } from 'luxon'; export default async function createPlugin( env: PluginEnvironment, @@ -163,9 +162,9 @@ export default async function createPlugin( }); const every10MinutesSchedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 10 }), - timeout: Duration.fromObject({ minutes: 15 }), - initialDelay: Duration.fromObject({ seconds: 3 }), + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, }); indexBuilder.addCollator({ @@ -294,20 +293,18 @@ which are responsible for providing documents number of collators with the `IndexBuilder` like this: ```typescript -import { Duration } from 'luxon'; - const indexBuilder = new IndexBuilder({ logger: env.logger, searchEngine }); const every10MinutesSchedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 10 }), - timeout: Duration.fromObject({ minutes: 15 }), - initialDelay: Duration.fromObject({ seconds: 3 }), + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, }); const everyHourSchedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ hours: 1 }), - timeout: Duration.fromObject({ minutes: 90 }), - initialDelay: Duration.fromObject({ seconds: 3 }), + frequency: { hours: 1 }, + timeout: { minutes: 90 }, + initialDelay: { seconds: 3 }, }); indexBuilder.addCollator({ @@ -332,9 +329,9 @@ a scheduled `TaskRunner` to pass into the `schedule` value, like this: ```typescript {3} const every10MinutesSchedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 10 }), - timeout: Duration.fromObject({ minutes: 15 }), - initialDelay: Duration.fromObject({ seconds: 3 }), + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, }); indexBuilder.addCollator({ diff --git a/docs/features/software-catalog/external-integrations.md b/docs/features/software-catalog/external-integrations.md index a344f478d7..d6353d1185 100644 --- a/docs/features/software-catalog/external-integrations.md +++ b/docs/features/software-catalog/external-integrations.md @@ -231,7 +231,6 @@ You should now be able to add this class to your backend in `packages/backend/src/plugins/catalog.ts`: ```diff -+import { Duration } from 'luxon'; +import { FrobsProvider } from '../path/to/class'; export default async function createPlugin( @@ -248,8 +247,8 @@ You should now be able to add this class to your backend in + await env.scheduler.scheduleTask({ + id: 'run_frobs_refresh', + fn: async () => { await frobs.run(); }, -+ frequency: Duration.fromObject({ minutes: 30 }), -+ timeout: Duration.fromObject({ minutes: 10 }), ++ frequency: { minutes: 30 }, ++ timeout: { minutes: 10 }, + }); ``` diff --git a/docs/integrations/aws-s3/discovery.md b/docs/integrations/aws-s3/discovery.md index 316b5c5014..5091b4057b 100644 --- a/docs/integrations/aws-s3/discovery.md +++ b/docs/integrations/aws-s3/discovery.md @@ -70,8 +70,8 @@ builder.addEntityProvider( ...AwsS3EntityProvider.fromConfig(env.config, { logger: env.logger, schedule: env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 30 }), - timeout: Duration.fromObject({ minutes: 3 }), + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, }), }), ); diff --git a/docs/integrations/gerrit/discovery.md b/docs/integrations/gerrit/discovery.md index 5cd1f6204b..b801f7b77a 100644 --- a/docs/integrations/gerrit/discovery.md +++ b/docs/integrations/gerrit/discovery.md @@ -33,8 +33,8 @@ builder.addEntityProvider( ...GerritEntityProvider.fromConfig(env.config, { logger: env.logger, schedule: env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 30 }), - timeout: Duration.fromObject({ minutes: 3 }), + frequency: { minutes: 30 }, + timeout: { minutes: 3 }, }), }), ); diff --git a/docs/integrations/ldap/org.md b/docs/integrations/ldap/org.md index 355bd04227..e7028f34f1 100644 --- a/docs/integrations/ldap/org.md +++ b/docs/integrations/ldap/org.md @@ -49,8 +49,8 @@ schedule it: + target: 'ldaps://ds.example.net', + logger: env.logger, + schedule: env.scheduler.createScheduledTaskRunner({ -+ frequency: Duration.fromObject({ minutes: 60 }), -+ timeout: Duration.fromObject({ minutes: 15 }), ++ frequency: { minutes: 60 }, ++ timeout: { minutes: 15 }, + }), + }), + ); diff --git a/packages/backend-tasks/README.md b/packages/backend-tasks/README.md index d170c323c8..b3c304eb34 100644 --- a/packages/backend-tasks/README.md +++ b/packages/backend-tasks/README.md @@ -15,14 +15,13 @@ then make use of its facilities as necessary: ```typescript import { TaskScheduler } from '@backstage/backend-tasks'; -import { Duration } from 'luxon'; const scheduler = TaskScheduler.fromConfig(rootConfig).forPlugin('my-plugin'); await scheduler.scheduleTask({ id: 'refresh_things', frequency: { cron: '*/5 * * * *' }, // every 5 minutes, also supports Duration - timeout: Duration.fromObject({ minutes: 15 }), + timeout: { minutes: 15 }, fn: async () => { await entityProvider.run(); }, diff --git a/packages/backend/src/plugins/search.ts b/packages/backend/src/plugins/search.ts index fc91d98cfe..5832bc3d1f 100644 --- a/packages/backend/src/plugins/search.ts +++ b/packages/backend/src/plugins/search.ts @@ -26,7 +26,6 @@ import { } from '@backstage/plugin-search-backend-node'; import { DefaultTechDocsCollatorFactory } from '@backstage/plugin-techdocs-backend'; import { Router } from 'express'; -import { Duration } from 'luxon'; import { PluginEnvironment } from '../types'; async function createSearchEngine( @@ -57,11 +56,11 @@ export default async function createPlugin( }); const schedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 10 }), - timeout: Duration.fromObject({ minutes: 15 }), + frequency: { seconds: 10 }, + timeout: { minutes: 15 }, // A 3 second delay gives the backend server a chance to initialize before // any collators are executed, which may attempt requests against the API. - initialDelay: Duration.fromObject({ seconds: 3 }), + initialDelay: { seconds: 3 }, }); // Collators are responsible for gathering documents known to plugins. This diff --git a/packages/create-app/templates/default-app/packages/backend/package.json.hbs b/packages/create-app/templates/default-app/packages/backend/package.json.hbs index c162dd880e..3bd070ee9b 100644 --- a/packages/create-app/templates/default-app/packages/backend/package.json.hbs +++ b/packages/create-app/templates/default-app/packages/backend/package.json.hbs @@ -36,7 +36,6 @@ "dockerode": "^3.3.1", "express": "^4.17.1", "express-promise-router": "^4.1.0", - "luxon": "^2.0.2", "pg": "^8.3.0", "winston": "^3.2.1" }, diff --git a/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts.hbs b/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts.hbs index 27c42fca31..e9469dcc1f 100644 --- a/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts.hbs +++ b/packages/create-app/templates/default-app/packages/backend/src/plugins/search.ts.hbs @@ -8,7 +8,6 @@ import { PluginEnvironment } from '../types'; import { DefaultCatalogCollatorFactory } from '@backstage/plugin-catalog-backend'; import { DefaultTechDocsCollatorFactory } from '@backstage/plugin-techdocs-backend'; import { Router } from 'express'; -import { Duration } from 'luxon'; export default async function createPlugin( env: PluginEnvironment, @@ -23,11 +22,11 @@ export default async function createPlugin( }); const schedule = env.scheduler.createScheduledTaskRunner({ - frequency: Duration.fromObject({ minutes: 10 }), - timeout: Duration.fromObject({ minutes: 15 }), + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, // A 3 second delay gives the backend server a chance to initialize before // any collators are executed, which may attempt requests against the API. - initialDelay: Duration.fromObject({ seconds: 3 }), + initialDelay: { seconds: 3 }, }); // Collators are responsible for gathering documents known to plugins. This