@balena/pinejs 18.0.1-build-renovate-major-12-commander-fd76c20f55e2128ed15e0a0c975427e3b79595b1-1 → 18.1.0-build-joshbwlng-tasks-671c1667086b4af10d82d4c08df482c8b0a83384-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,15 @@
1
1
  - commits:
2
- - subject: Update dependency commander to v12
3
- hash: fd76c20f55e2128ed15e0a0c975427e3b79595b1
4
- body: |
5
- Update commander from 11.1.0 to 12.1.0
2
+ - subject: Add async tasks
3
+ hash: 671c1667086b4af10d82d4c08df482c8b0a83384
4
+ body: ""
6
5
  footer:
7
- Change-type: patch
8
- change-type: patch
9
- author: Self-hosted Renovate Bot
6
+ Change-type: minor
7
+ change-type: minor
8
+ author: Josh Bowling
10
9
  nested: []
11
- version: 18.0.1
10
+ version: 18.1.0
12
11
  title: ""
13
- date: 2024-08-05T11:53:52.817Z
12
+ date: 2024-08-06T00:38:05.429Z
14
13
  - commits:
15
14
  - subject: Update sbvr-types to v9.0.1
16
15
  hash: 4770d173c08c7c332b0597148058cee5bcad944a
package/CHANGELOG.md CHANGED
@@ -4,10 +4,10 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
- # v18.0.1
8
- ## (2024-08-05)
7
+ # v18.1.0
8
+ ## (2024-08-06)
9
9
 
10
- * Update dependency commander to v12 [Self-hosted Renovate Bot]
10
+ * Add async tasks [Josh Bowling]
11
11
 
12
12
  # v18.0.0
13
13
  ## (2024-08-05)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 18.0.1
1
+ 18.1.0
@@ -54,4 +54,8 @@ export declare const migrator: {
54
54
  asyncMigrationDefaultBatchSize: number;
55
55
  asyncMigrationIsEnabled: boolean;
56
56
  };
57
+ export declare const tasks: {
58
+ queueConcurrency: number;
59
+ queueIntervalMS: number;
60
+ };
57
61
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.migrator = exports.booleanToEnabledString = exports.PINEJS_ADVISORY_LOCK = exports.db = exports.createCache = exports.cache = exports.DEBUG = void 0;
6
+ exports.tasks = exports.migrator = exports.booleanToEnabledString = exports.PINEJS_ADVISORY_LOCK = exports.db = exports.createCache = exports.cache = exports.DEBUG = void 0;
7
7
  const { PINEJS_DEBUG } = process.env;
8
8
  if (![undefined, '', '0', '1'].includes(PINEJS_DEBUG)) {
9
9
  throw new Error(`Invalid value for PINEJS_DEBUG '${PINEJS_DEBUG}'`);
@@ -90,4 +90,8 @@ exports.migrator = {
90
90
  asyncMigrationDefaultBatchSize: 1000,
91
91
  asyncMigrationIsEnabled: (0, env_parsing_1.boolVar)('PINEJS_ASYNC_MIGRATION_ENABLED', true),
92
92
  };
93
+ exports.tasks = {
94
+ queueConcurrency: (0, env_parsing_1.intVar)('PINEJS_QUEUE_CONCURRENCY', 0),
95
+ queueIntervalMS: (0, env_parsing_1.intVar)('PINEJS_QUEUE_INTERVAL_MS', 1000),
96
+ };
93
97
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config-loader/env.ts"],"names":[],"mappings":";;;;;;AAAA,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AACrC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,GAAG,CAAC,CAAC;AACrE,CAAC;AACY,QAAA,KAAK,GAAG,YAAY,KAAK,GAAG,CAAC;AA0B7B,QAAA,KAAK,GAAG;IACpB,iBAAiB,EAAE;QAClB,GAAG,EAAE,IAAI;KACI;IACd,gBAAgB,EAAE;QACjB,GAAG,EAAE,MAAM;KACE;IACd,UAAU,EAAE;QACX,GAAG,EAAE,MAAM;KACE;IACd,kBAAkB,EAAE;QACnB,GAAG,EAAE,KAAK;KACG;IACd,mBAAmB,EAAE;QACpB,GAAG,EAAE,KAAK;KACG;IACd,eAAe,EAAE,KAAkB;IACnC,iBAAiB,EAAE,KAAkB;IACrC,aAAa,EAAE,KAAkB;CACjC,CAAC;AAEF,qDAA8C;AAC9C,wDAA+B;AAC/B,6CAA8C;AACvC,MAAM,WAAW,GAAG,CAC1B,SAA6B,EAC7B,EAAK,EAGL,IAAoB,EACnB,EAAE;IACH,MAAM,SAAS,GAAG,aAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC,EAAE,EAAE;YACtB,GAAG,SAAS;YACZ,GAAG,IAAI;SACP,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAA,kBAAO,EAAC,EAAE,EAAE;QAClB,GAAG,SAAS;QACZ,GAAG,IAAI;KACP,CAAC,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,WAAW,eAwBtB;AAEF,IAAI,SAAiB,CAAC;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;IACxC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,6CAA6C,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CACjF,CAAC;IACH,CAAC;AACF,CAAC;KAAM,CAAC;IACP,SAAS,GAAG,KAAK,CAAC;AACnB,CAAC;AAEY,QAAA,EAAE,GAAG;IACjB,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,KAA2B;IAC9C,gBAAgB,EAAE,SAA+B;IACjD,YAAY,EAAE,SAA+B;IAC7C,uBAAuB,EAAE,KAA2B;IACpD,SAAS,EAAE,IAA2B;IACtC,eAAe,EAAE,KAAK;IACtB,SAAS;IACT,OAAO,EAAE,QAAQ;IACjB,kBAAkB,EAAE,CAAC;IASrB,oBAAoB,EAAE,aAAK;CAC3B,CAAC;AAEW,QAAA,oBAAoB,GAAG;IACnC,YAAY,EAAE,gCAAgC;IAC9C,WAAW,EAAE,CAAC,CAAC;CACf,CAAC;AAEK,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAAE,EAAE,CACxD,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AADnB,QAAA,sBAAsB,0BACH;AAEnB,QAAA,QAAQ,GAAG;IACvB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAE1B,aAAa,EAAE,EAAE,GAAG,IAAI;IACxB,4BAA4B,EAAE,IAAI;IAClC,mCAAmC,EAAE,KAAK;IAC1C,mCAAmC,EAAE,EAAE;IACvC,8BAA8B,EAAE,IAAI;IAiBpC,uBAAuB,EAAE,IAAA,qBAAO,EAAC,gCAAgC,EAAE,IAAI,CAAC;CACxE,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config-loader/env.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,9 @@ export interface Database extends BaseDatabase {
58
58
  executeSql: (this: Database, sql: Sql, bindings?: Bindings) => Promise<Result>;
59
59
  transaction: TransactionFn;
60
60
  readTransaction: TransactionFn;
61
+ on?: (name: 'notification', fn: (...args: any[]) => Promise<void>, options?: {
62
+ channel?: string;
63
+ }) => void;
61
64
  }
62
65
  interface EngineParams {
63
66
  [engine: string]: (options: unknown) => Database;
@@ -522,6 +522,26 @@ if (maybePg != null) {
522
522
  return {
523
523
  engine: "postgres",
524
524
  executeSql: atomicExecuteSql,
525
+ on: async (name, fn, options) => {
526
+ if (name === 'notification' && options?.channel === undefined) {
527
+ throw new Error('Missing channel option for notification listener');
528
+ }
529
+ const client = await pool.connect();
530
+ client.on(name, async (msg) => {
531
+ try {
532
+ await fn(msg);
533
+ }
534
+ catch (error) {
535
+ console.error('Error handling message:', error);
536
+ }
537
+ });
538
+ if (name === 'notification' && options?.channel !== undefined) {
539
+ if (options.channel.includes('"')) {
540
+ throw new Error(`Invalid channel name for task LISTEN: ${options.channel}`);
541
+ }
542
+ await client.query(`LISTEN "${options.channel}";`);
543
+ }
544
+ },
525
545
  transaction: createTransaction(async (stackTraceErr, timeoutMS) => {
526
546
  const client = await pool.connect();
527
547
  const tx = new PostgresTx(client, false, stackTraceErr, timeoutMS);
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export * as errors from '../sbvr-api/errors';
12
12
  export * as env from '../config-loader/env';
13
13
  export * as types from '../sbvr-api/common-types';
14
14
  export * as hooks from '../sbvr-api/hooks';
15
+ export * as tasks from '../tasks';
15
16
  export * as webResourceHandler from '../webresource-handler';
16
17
  export type { configLoader as ConfigLoader };
17
18
  export type { migratorUtils as Migrator };
@@ -23,11 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.init = exports.webResourceHandler = exports.hooks = exports.types = exports.env = exports.errors = exports.permissions = exports.sbvrUtils = exports.mountLoginRouter = exports.PinejsSessionStore = exports.dbModule = void 0;
26
+ exports.init = exports.webResourceHandler = exports.tasks = exports.hooks = exports.types = exports.env = exports.errors = exports.permissions = exports.sbvrUtils = exports.mountLoginRouter = exports.PinejsSessionStore = exports.dbModule = void 0;
27
27
  require("./sbvr-loader");
28
28
  const dbModule = __importStar(require("../database-layer/db"));
29
29
  const configLoader = __importStar(require("../config-loader/config-loader"));
30
30
  const migrator = __importStar(require("../migrator/sync"));
31
+ const tasks = __importStar(require("../tasks"));
31
32
  const sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
32
33
  const env_1 = require("../config-loader/env");
33
34
  exports.dbModule = __importStar(require("../database-layer/db"));
@@ -41,6 +42,7 @@ exports.errors = __importStar(require("../sbvr-api/errors"));
41
42
  exports.env = __importStar(require("../config-loader/env"));
42
43
  exports.types = __importStar(require("../sbvr-api/common-types"));
43
44
  exports.hooks = __importStar(require("../sbvr-api/hooks"));
45
+ exports.tasks = __importStar(require("../tasks"));
44
46
  exports.webResourceHandler = __importStar(require("../webresource-handler"));
45
47
  let envDatabaseOptions;
46
48
  if (dbModule.engines.websql != null) {
@@ -75,6 +77,7 @@ const init = async (app, config, databaseOptions = envDatabaseOptions) => {
75
77
  await sbvrUtils.setup(app, db);
76
78
  const cfgLoader = configLoader.setup(app);
77
79
  await cfgLoader.loadConfig(migrator.config);
80
+ await cfgLoader.loadConfig(tasks.config);
78
81
  const promises = [];
79
82
  if (process.env.SBVR_SERVER_ENABLED) {
80
83
  const sbvrServer = await import('../data-server/sbvr-server.js');
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import Ajv from 'ajv';
2
+ export declare const apiRoot = "tasks";
3
+ export declare const channel = "pinejs$task_insert";
4
+ export declare const ajv: Ajv;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ajv = exports.channel = exports.apiRoot = void 0;
7
+ const ajv_1 = __importDefault(require("ajv"));
8
+ exports.apiRoot = 'tasks';
9
+ exports.channel = 'pinejs$task_insert';
10
+ exports.ajv = new ajv_1.default();
11
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tasks/common.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAGT,QAAA,OAAO,GAAG,OAAO,CAAC;AAGlB,QAAA,OAAO,GAAG,oBAAoB,CAAC;AAE/B,QAAA,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Schema } from 'ajv';
2
+ import type { ConfigLoader } from '../server-glue/module';
3
+ import type { TaskHandler } from './worker';
4
+ import { Worker } from './worker';
5
+ export type * from './tasks';
6
+ export declare const config: ConfigLoader.Config;
7
+ export declare let worker: Worker | null;
8
+ export declare function setup(): Promise<void>;
9
+ export declare function addTaskHandler(name: string, fn: TaskHandler['fn'], schema?: Schema): void;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.worker = exports.config = void 0;
27
+ exports.setup = setup;
28
+ exports.addTaskHandler = addTaskHandler;
29
+ const cronParser = __importStar(require("cron-parser"));
30
+ const env_1 = require("../config-loader/env");
31
+ const hooks_1 = require("../sbvr-api/hooks");
32
+ const sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
33
+ const common_1 = require("./common");
34
+ const worker_1 = require("./worker");
35
+ const modelText = require('./tasks.sbvr');
36
+ const initSql = `
37
+ CREATE OR REPLACE FUNCTION notify_task_insert()
38
+ RETURNS TRIGGER AS $$
39
+ BEGIN
40
+ PERFORM pg_notify('${common_1.channel}', NEW.id::text);
41
+ RETURN NEW;
42
+ END;
43
+ $$ LANGUAGE plpgsql;
44
+
45
+ CREATE OR REPLACE TRIGGER task_insert_trigger
46
+ AFTER INSERT ON task
47
+ FOR EACH ROW WHEN (NEW.status = 'queued' AND NEW."is scheduled to execute on-time" IS NULL)
48
+ EXECUTE FUNCTION notify_task_insert();
49
+
50
+ CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
51
+ "is executed by-handler",
52
+ "is scheduled to execute on-time" ASC,
53
+ "id" ASC
54
+ ) WHERE status = 'queued';
55
+ `;
56
+ exports.config = {
57
+ models: [
58
+ {
59
+ modelName: common_1.apiRoot,
60
+ apiRoot: common_1.apiRoot,
61
+ modelText,
62
+ customServerCode: exports,
63
+ initSql,
64
+ },
65
+ ],
66
+ };
67
+ exports.worker = null;
68
+ async function setup() {
69
+ if (sbvrUtils.db.engine !== 'postgres') {
70
+ console.warn('Skipping task setup as database not supported');
71
+ return;
72
+ }
73
+ const client = sbvrUtils.api[common_1.apiRoot];
74
+ exports.worker = new worker_1.Worker(client);
75
+ (0, hooks_1.addPureHook)('POST', common_1.apiRoot, 'task', {
76
+ POSTPARSE: async ({ req, request }) => {
77
+ request.values.is_created_by__actor =
78
+ req.user?.actor ?? req.apiKey?.actor;
79
+ if (request.values.is_created_by__actor == null) {
80
+ throw new Error('Creating tasks with missing actor on req is not allowed');
81
+ }
82
+ request.values.status = 'queued';
83
+ request.values.attempt_count = 0;
84
+ request.values.attempt_limit ??= 1;
85
+ if (request.values.is_scheduled_with__cron_expression != null &&
86
+ request.values.is_scheduled_to_execute_on__time == null) {
87
+ try {
88
+ request.values.is_scheduled_to_execute_on__time = cronParser
89
+ .parseExpression(request.values.is_scheduled_with__cron_expression)
90
+ .next()
91
+ .toDate()
92
+ .toISOString();
93
+ }
94
+ catch {
95
+ throw new Error(`Invalid cron expression: ${request.values.is_scheduled_with__cron_expression}`);
96
+ }
97
+ }
98
+ if (request.values.is_scheduled_to_execute_on__time != null) {
99
+ const now = new Date(Date.now() + env_1.tasks.queueIntervalMS);
100
+ const startTime = new Date(request.values.is_scheduled_to_execute_on__time);
101
+ if (startTime < now) {
102
+ throw new Error(`Task scheduled start time must be greater than ${env_1.tasks.queueIntervalMS} milliseconds in the future`);
103
+ }
104
+ }
105
+ const handlerName = request.values.is_executed_by__handler;
106
+ if (handlerName == null) {
107
+ throw new Error(`Must specify a task handler to execute`);
108
+ }
109
+ const handler = exports.worker?.handlers[handlerName];
110
+ if (handler == null) {
111
+ throw new Error(`No task handler with name '${handlerName}' registered`);
112
+ }
113
+ if (handler.validate != null) {
114
+ if (!handler.validate(request.values.is_executed_with__parameter_set)) {
115
+ throw new Error(`Invalid parameter set: ${common_1.ajv.errorsText(handler.validate.errors)}`);
116
+ }
117
+ }
118
+ },
119
+ });
120
+ }
121
+ function addTaskHandler(name, fn, schema) {
122
+ if (exports.worker == null) {
123
+ throw new Error('Database does not support tasks');
124
+ }
125
+ if (exports.worker.handlers[name] != null) {
126
+ throw new Error(`Task handler with name '${name}' already registered`);
127
+ }
128
+ exports.worker.handlers[name] = {
129
+ name,
130
+ fn,
131
+ validate: schema != null ? common_1.ajv.compile(schema) : undefined,
132
+ };
133
+ }
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { Types } from '@balena/abstract-sql-to-typescript';
2
+ export interface Task {
3
+ Read: {
4
+ created_at: Types['Date Time']['Read'];
5
+ modified_at: Types['Date Time']['Read'];
6
+ id: Types['Big Serial']['Read'];
7
+ key: Types['Short Text']['Read'] | null;
8
+ is_created_by__actor: Types['Integer']['Read'];
9
+ is_executed_by__handler: Types['Short Text']['Read'];
10
+ is_executed_with__parameter_set: Types['JSON']['Read'] | null;
11
+ is_scheduled_with__cron_expression: Types['Short Text']['Read'] | null;
12
+ is_scheduled_to_execute_on__time: Types['Date Time']['Read'] | null;
13
+ status: 'queued' | 'cancelled' | 'succeeded' | 'failed';
14
+ started_on__time: Types['Date Time']['Read'] | null;
15
+ ended_on__time: Types['Date Time']['Read'] | null;
16
+ error_message: Types['Short Text']['Read'] | null;
17
+ attempt_count: Types['Integer']['Read'];
18
+ attempt_limit: Types['Integer']['Read'];
19
+ };
20
+ Write: {
21
+ created_at: Types['Date Time']['Write'];
22
+ modified_at: Types['Date Time']['Write'];
23
+ id: Types['Big Serial']['Write'];
24
+ key: Types['Short Text']['Write'] | null;
25
+ is_created_by__actor: Types['Integer']['Write'];
26
+ is_executed_by__handler: Types['Short Text']['Write'];
27
+ is_executed_with__parameter_set: Types['JSON']['Write'] | null;
28
+ is_scheduled_with__cron_expression: Types['Short Text']['Write'] | null;
29
+ is_scheduled_to_execute_on__time: Types['Date Time']['Write'] | null;
30
+ status: 'queued' | 'cancelled' | 'succeeded' | 'failed';
31
+ started_on__time: Types['Date Time']['Write'] | null;
32
+ ended_on__time: Types['Date Time']['Write'] | null;
33
+ error_message: Types['Short Text']['Write'] | null;
34
+ attempt_count: Types['Integer']['Write'];
35
+ attempt_limit: Types['Integer']['Write'];
36
+ };
37
+ }
38
+ export default interface $Model {
39
+ task: Task;
40
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ Vocabulary: tasks
2
+
3
+ Term: id
4
+ Concept Type: Big Serial (Type)
5
+ Term: actor
6
+ Concept Type: Integer (Type)
7
+ Term: attempt count
8
+ Concept Type: Integer (Type)
9
+ Term: attempt limit
10
+ Concept Type: Integer (Type)
11
+ Term: cron expression
12
+ Concept Type: Short Text (Type)
13
+ Term: error message
14
+ Concept Type: Short Text (Type)
15
+ Term: handler
16
+ Concept Type: Short Text (Type)
17
+ Term: key
18
+ Concept Type: Short Text (Type)
19
+ Term: parameter set
20
+ Concept Type: JSON (Type)
21
+ Term: status
22
+ Concept Type: Short Text (Type)
23
+ Term: time
24
+ Concept Type: Date Time (Type)
25
+
26
+ Term: task
27
+ Fact type: task has id
28
+ Necessity: each task has exactly one id
29
+ Fact type: task has key
30
+ Necessity: each task has at most one key
31
+ Fact type: task is created by actor
32
+ Necessity: each task is created by exactly one actor
33
+ Fact type: task is executed by handler
34
+ Necessity: each task is executed by exactly one handler
35
+ Fact type: task is executed with parameter set
36
+ Necessity: each task is executed with at most one parameter set
37
+ Fact type: task is scheduled with cron expression
38
+ Necessity: each task is scheduled with at most one cron expression
39
+ Fact type: task is scheduled to execute on time
40
+ Necessity: each task is scheduled to execute on at most one time
41
+ Fact type: task has status
42
+ Necessity: each task has exactly one status
43
+ Definition: "queued" or "cancelled" or "succeeded" or "failed"
44
+ Fact type: task started on time
45
+ Necessity: each task started on at most one time
46
+ Fact type: task ended on time
47
+ Necessity: each task ended on at most one time
48
+ Fact type: task has error message
49
+ Necessity: each task has at most one error message
50
+ Fact type: task has attempt count
51
+ Necessity: each task has exactly one attempt count
52
+ Fact type: task has attempt limit
53
+ Necessity: each task has exactly one attempt limit
54
+ Necessity: each task has an attempt limit that is greater than or equal to 1
55
+
@@ -0,0 +1,32 @@
1
+ import type { ValidateFunction } from 'ajv';
2
+ import type { AnyObject } from 'pinejs-client-core';
3
+ import { PinejsClient } from '../sbvr-api/sbvr-utils';
4
+ import type { Task } from './tasks';
5
+ interface TaskArgs {
6
+ api: PinejsClient;
7
+ params: AnyObject;
8
+ }
9
+ type TaskResponse = Promise<{
10
+ status: Task['Read']['status'];
11
+ error?: string;
12
+ }>;
13
+ export interface TaskHandler {
14
+ name: string;
15
+ fn: (options: TaskArgs) => TaskResponse;
16
+ validate?: ValidateFunction;
17
+ }
18
+ export declare class Worker {
19
+ private readonly client;
20
+ handlers: Record<string, TaskHandler>;
21
+ private readonly concurrency;
22
+ private readonly interval;
23
+ private executing;
24
+ constructor(client: PinejsClient);
25
+ private canExecute;
26
+ private execute;
27
+ private update;
28
+ private getNextAttemptTime;
29
+ private poll;
30
+ start(): Promise<void>;
31
+ }
32
+ export {};