prostgles-server 4.2.705 → 4.2.707
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.
- package/dist/Jobs/JobTypes.d.ts +48 -8
- package/dist/Jobs/JobTypes.d.ts.map +1 -1
- package/dist/Jobs/JobTypes.js.map +1 -1
- package/dist/Jobs/claimJob.d.ts +2 -0
- package/dist/Jobs/claimJob.d.ts.map +1 -1
- package/dist/Jobs/claimJob.js +26 -6
- package/dist/Jobs/claimJob.js.map +1 -1
- package/dist/Jobs/controlJob.d.ts +2 -2
- package/dist/Jobs/controlJob.d.ts.map +1 -1
- package/dist/Jobs/controlJob.js +10 -4
- package/dist/Jobs/controlJob.js.map +1 -1
- package/dist/Jobs/controlManualJob.d.ts +6 -0
- package/dist/Jobs/controlManualJob.d.ts.map +1 -0
- package/dist/Jobs/controlManualJob.js +53 -0
- package/dist/Jobs/controlManualJob.js.map +1 -0
- package/dist/Jobs/createJobControlFunctionDefiner.d.ts +57 -13
- package/dist/Jobs/createJobControlFunctionDefiner.d.ts.map +1 -1
- package/dist/Jobs/createJobControlFunctionDefiner.js +37 -7
- package/dist/Jobs/createJobControlFunctionDefiner.js.map +1 -1
- package/dist/Jobs/createJobsAPI.d.ts.map +1 -1
- package/dist/Jobs/createJobsAPI.js +16 -9
- package/dist/Jobs/createJobsAPI.js.map +1 -1
- package/dist/Jobs/createManualJobControlFunction.d.ts +49 -0
- package/dist/Jobs/createManualJobControlFunction.d.ts.map +1 -0
- package/dist/Jobs/createManualJobControlFunction.js +44 -0
- package/dist/Jobs/createManualJobControlFunction.js.map +1 -0
- package/dist/Jobs/enqueueJob.d.ts +1 -1
- package/dist/Jobs/enqueueJob.d.ts.map +1 -1
- package/dist/Jobs/enqueueJob.js +2 -1
- package/dist/Jobs/enqueueJob.js.map +1 -1
- package/dist/Jobs/getJobDefinition.d.ts.map +1 -1
- package/dist/Jobs/getJobDefinition.js +7 -4
- package/dist/Jobs/getJobDefinition.js.map +1 -1
- package/dist/Jobs/getJobRetention.d.ts.map +1 -1
- package/dist/Jobs/getJobRetention.js +5 -5
- package/dist/Jobs/getJobRetention.js.map +1 -1
- package/dist/Jobs/getJobTableHooks.js +1 -1
- package/dist/Jobs/getJobTableHooks.js.map +1 -1
- package/dist/Jobs/jobTableConfig.d.ts +2 -0
- package/dist/Jobs/jobTableConfig.d.ts.map +1 -1
- package/dist/Jobs/jobUtils.d.ts +2 -1
- package/dist/Jobs/jobUtils.d.ts.map +1 -1
- package/dist/Jobs/jobUtils.js +10 -1
- package/dist/Jobs/jobUtils.js.map +1 -1
- package/dist/Jobs/runJob.d.ts.map +1 -1
- package/dist/Jobs/runJob.js +14 -3
- package/dist/Jobs/runJob.js.map +1 -1
- package/dist/Jobs/startJob.d.ts +10 -0
- package/dist/Jobs/startJob.d.ts.map +1 -0
- package/dist/Jobs/startJob.js +40 -0
- package/dist/Jobs/startJob.js.map +1 -0
- package/dist/ProstglesTypes.d.ts +1 -1
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/TableHooks/captureMutation.d.ts.map +1 -1
- package/dist/TableHooks/captureMutation.js +8 -2
- package/dist/TableHooks/captureMutation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ const runClientRequest_1 = require("../runClientRequest");
|
|
|
7
7
|
const controlJob_1 = require("./controlJob");
|
|
8
8
|
const enqueueJob_1 = require("./enqueueJob");
|
|
9
9
|
const getJobTableHandler_1 = require("./getJobTableHandler");
|
|
10
|
+
const startJob_1 = require("./startJob");
|
|
10
11
|
const createJobsAPI = (prostgles, dbx) => {
|
|
11
12
|
const runInTransaction = async (callback) => {
|
|
12
13
|
prostgles.checkNotDestroyed();
|
|
@@ -22,6 +23,15 @@ const createJobsAPI = (prostgles, dbx) => {
|
|
|
22
23
|
throw error;
|
|
23
24
|
}
|
|
24
25
|
};
|
|
26
|
+
const getUserId = async (userId) => {
|
|
27
|
+
const clientReq = getClientRequest(prostgles, userId);
|
|
28
|
+
if (!clientReq)
|
|
29
|
+
return;
|
|
30
|
+
const publishParser = prostgles.publishParser;
|
|
31
|
+
if (!publishParser)
|
|
32
|
+
throw new Error("Publish parser is not initialized");
|
|
33
|
+
return (await publishParser.getPublishParams(clientReq, undefined)).user?.id;
|
|
34
|
+
};
|
|
25
35
|
return {
|
|
26
36
|
withTransaction: (dbx) => {
|
|
27
37
|
prostgles.dboBuilder.getTransactionForHandlers(dbx);
|
|
@@ -42,6 +52,11 @@ const createJobsAPI = (prostgles, dbx) => {
|
|
|
42
52
|
};
|
|
43
53
|
return dbx ? runInTransaction(read) : read(undefined);
|
|
44
54
|
},
|
|
55
|
+
start: (name, params = {}, options) => runInTransaction(async (transaction) => (0, startJob_1.startJob)(prostgles, transaction, name, {
|
|
56
|
+
params,
|
|
57
|
+
row: options?.row,
|
|
58
|
+
userId: await getUserId(options?.userId),
|
|
59
|
+
})),
|
|
45
60
|
cancel: (id) => runInTransaction(async (transaction) => {
|
|
46
61
|
const job = await (0, getJobTableHandler_1.getJobTableHandler)(prostgles, transaction).findOne({ id });
|
|
47
62
|
if (!job)
|
|
@@ -55,15 +70,7 @@ const createJobsAPI = (prostgles, dbx) => {
|
|
|
55
70
|
AND status IN ('pending', 'running')`, { jobId: id });
|
|
56
71
|
}),
|
|
57
72
|
rerun: (id, params = {}, options) => runInTransaction(async (transaction) => {
|
|
58
|
-
const userId = await (
|
|
59
|
-
const clientReq = getClientRequest(prostgles, options?.userId);
|
|
60
|
-
if (!clientReq)
|
|
61
|
-
return;
|
|
62
|
-
const publishParser = prostgles.publishParser;
|
|
63
|
-
if (!publishParser)
|
|
64
|
-
throw new Error("Publish parser is not initialized");
|
|
65
|
-
return (await publishParser.getPublishParams(clientReq, undefined)).user?.id;
|
|
66
|
-
})();
|
|
73
|
+
const userId = await getUserId(options?.userId);
|
|
67
74
|
const job = await (0, getJobTableHandler_1.getJobTableHandler)(prostgles, transaction).findOne({ id });
|
|
68
75
|
if (!job)
|
|
69
76
|
throw new Error("Job not found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createJobsAPI.js","sourceRoot":"","sources":["../../lib/Jobs/createJobsAPI.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"createJobsAPI.js","sourceRoot":"","sources":["../../lib/Jobs/createJobsAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { MaybePromise } from "prostgles-types";
|
|
2
|
+
import type { SessionUser } from "../Auth/AuthTypes";
|
|
3
|
+
import type { DBTableHandlersFromSchema } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
4
|
+
import type { ServerFunctionContextMarker, UnrestrictedFunctionContext } from "../PublishParser/defineServerFunction";
|
|
5
|
+
import type { JobControlOperation, JobRecord, JobValue, ParamsOutput, ParamsSchema } from "./JobTypes";
|
|
6
|
+
export declare const createManualJobControlFunction: <S, SUser extends SessionUser, Context, Schema extends ParamsSchema, Operation extends JobControlOperation>({ jobName, operation, description, params, run, }: {
|
|
7
|
+
jobName: string;
|
|
8
|
+
operation: Operation;
|
|
9
|
+
description: string | undefined;
|
|
10
|
+
params: Schema | undefined;
|
|
11
|
+
run: ((context: ManualJobControlFunctionContext<S, SUser, Context, ParamsOutput<Schema>>) => MaybePromise<void>) | undefined;
|
|
12
|
+
}) => {
|
|
13
|
+
input: ManualControlInput<Schema, Operation>;
|
|
14
|
+
description: string | undefined;
|
|
15
|
+
unrestrictedDbAccess: true;
|
|
16
|
+
run: (input: {
|
|
17
|
+
jobId?: string;
|
|
18
|
+
params?: Record<string, JobValue>;
|
|
19
|
+
}, context: UnrestrictedFunctionContext<S, SUser, Context>) => Promise<{
|
|
20
|
+
jobId: string;
|
|
21
|
+
}>;
|
|
22
|
+
} & ServerFunctionContextMarker<S, SUser, Context>;
|
|
23
|
+
export type ManualJobControlFunctionContext<S, SUser extends SessionUser, Context, Params> = Omit<UnrestrictedFunctionContext<S, SUser, Context>, "dbo" | "db" | "sql"> & {
|
|
24
|
+
row: undefined;
|
|
25
|
+
job: JobRecord | undefined;
|
|
26
|
+
params: Params;
|
|
27
|
+
dbx: DBTableHandlersFromSchema<S>;
|
|
28
|
+
};
|
|
29
|
+
type ManualControlInput<Schema extends ParamsSchema, Operation extends JobControlOperation> = {
|
|
30
|
+
jobId: {
|
|
31
|
+
type: "string";
|
|
32
|
+
optional: Operation extends "startOrRetry" ? true : false;
|
|
33
|
+
};
|
|
34
|
+
} & (Operation extends "cancel" ? {} : {
|
|
35
|
+
params: {
|
|
36
|
+
optional: true;
|
|
37
|
+
type: {
|
|
38
|
+
[Key in keyof Schema]: Omit<Schema[Key] extends {
|
|
39
|
+
jsonbSchema: infer Field;
|
|
40
|
+
} ? Field : {
|
|
41
|
+
type: Schema[Key]["jsonbSchemaType"];
|
|
42
|
+
}, "optional"> & {
|
|
43
|
+
optional: true;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=createManualJobControlFunction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createManualJobControlFunction.d.ts","sourceRoot":"","sources":["../../lib/Jobs/createManualJobControlFunction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,QAAQ,EAER,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,8BAA8B,GACzC,CAAC,EACD,KAAK,SAAS,WAAW,EACzB,OAAO,EACP,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,mBAAmB,EACrC,mDAMC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,EACC,CAAC,CACC,OAAO,EAAE,+BAA+B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,KAC9E,YAAY,CAAC,IAAI,CAAC,CAAC,GACxB,SAAS,CAAC;CACf,KA4C8B;;;;iBArBlB;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;KAAE,WACnD,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;;;IAqBzD,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAChD,CAAC;AAEF,MAAM,MAAM,+BAA+B,CAAC,CAAC,EAAE,KAAK,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAC/F,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAC9C,KAAK,GAAG,IAAI,GAAG,KAAK,CACrB,GAAG;IACF,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,SAAS,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAEF,KAAK,kBAAkB,CAAC,MAAM,SAAS,YAAY,EAAE,SAAS,SAAS,mBAAmB,IAAI;IAC5F,KAAK,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,SAAS,SAAS,cAAc,GAAG,IAAI,GAAG,KAAK,CAAA;KAAE,CAAC;CACtF,GAAG,CAAC,SAAS,SAAS,QAAQ,GAAG,EAAE,GAClC;IACE,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI,CAAC;QACf,IAAI,EAAE;aACH,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,CACzB,MAAM,CAAC,GAAG,CAAC,SAAS;gBAAE,WAAW,EAAE,MAAM,KAAK,CAAA;aAAE,GAAG,KAAK,GACtD;gBAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAA;aAAE,EAC1C,UAAU,CACX,GAAG;gBAAE,QAAQ,EAAE,IAAI,CAAA;aAAE;SACvB,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createManualJobControlFunction = void 0;
|
|
4
|
+
const createManualJobControlFunction = ({ jobName, operation, description, params, run, }) => {
|
|
5
|
+
const input = {
|
|
6
|
+
jobId: { type: "string", optional: operation === "startOrRetry" },
|
|
7
|
+
...(operation !== "cancel" && {
|
|
8
|
+
params: {
|
|
9
|
+
type: Object.fromEntries(Object.entries(params ?? {}).map(([key, field]) => [
|
|
10
|
+
key,
|
|
11
|
+
{
|
|
12
|
+
...(field.jsonbSchema ?? { type: field.jsonbSchemaType }),
|
|
13
|
+
optional: true,
|
|
14
|
+
},
|
|
15
|
+
])),
|
|
16
|
+
optional: true,
|
|
17
|
+
},
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
const functionDefinition = {
|
|
21
|
+
input,
|
|
22
|
+
description,
|
|
23
|
+
unrestrictedDbAccess: true,
|
|
24
|
+
run: (input, context) => {
|
|
25
|
+
const prepare = run &&
|
|
26
|
+
(({ job, params, dbx }) => run({
|
|
27
|
+
...context,
|
|
28
|
+
row: undefined,
|
|
29
|
+
job,
|
|
30
|
+
params: params,
|
|
31
|
+
dbx,
|
|
32
|
+
jobs: context.jobs.withTransaction(dbx),
|
|
33
|
+
}));
|
|
34
|
+
return context.jobs.control(jobName, {
|
|
35
|
+
...input,
|
|
36
|
+
operation,
|
|
37
|
+
run: prepare,
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
return functionDefinition;
|
|
42
|
+
};
|
|
43
|
+
exports.createManualJobControlFunction = createManualJobControlFunction;
|
|
44
|
+
//# sourceMappingURL=createManualJobControlFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createManualJobControlFunction.js","sourceRoot":"","sources":["../../lib/Jobs/createManualJobControlFunction.ts"],"names":[],"mappings":";;;AAgBO,MAAM,8BAA8B,GAAG,CAM5C,EACA,OAAO,EACP,SAAS,EACT,WAAW,EACX,MAAM,EACN,GAAG,GAWJ,EAAE,EAAE;IACH,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,KAAK,cAAc,EAAE;QACjE,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI;YAC5B,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBACjD,GAAG;oBACH;wBACE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;wBACzD,QAAQ,EAAE,IAAI;qBACI;iBACrB,CAAC,CACH;gBACD,QAAQ,EAAE,IAAI;aACf;SACF,CAAC;KACsC,CAAC;IAC3C,MAAM,kBAAkB,GAAG;QACzB,KAAK;QACL,WAAW;QACX,oBAAoB,EAAE,IAAa;QACnC,GAAG,EAAE,CACH,KAA4D,EAC5D,OAAuD,EACvD,EAAE;YACF,MAAM,OAAO,GACX,GAAG;gBACH,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CACxB,GAAG,CAAC;oBACF,GAAG,OAAO;oBACV,GAAG,EAAE,SAAS;oBACd,GAAG;oBACH,MAAM,EAAE,MAAyC;oBACjD,GAAG;oBACH,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;iBACxC,CAAC,CAAC,CAAC;YACR,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAI,OAAO,EAAE;gBACtC,GAAG,KAAK;gBACR,SAAS;gBACT,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IACF,OAAO,kBACyC,CAAC;AACnD,CAAC,CAAC;AApEW,QAAA,8BAA8B,kCAoEzC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Prostgles } from "../Prostgles";
|
|
2
2
|
import type { JobRecord, JobTransaction } from "./JobTypes";
|
|
3
|
-
/**
|
|
3
|
+
/** Enqueue configured jobs inside the trigger, start or rerun transaction. */
|
|
4
4
|
export declare const enqueueJob: (prostgles: Prostgles, transaction: JobTransaction, name: string, targetRowPkey: JobRecord["target_row_pkey"], options?: {
|
|
5
5
|
userId?: string;
|
|
6
6
|
params?: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueueJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,
|
|
1
|
+
{"version":3,"file":"enqueueJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5D,8EAA8E;AAC9E,eAAO,MAAM,UAAU,GACrB,WAAW,SAAS,EACpB,aAAa,cAAc,EAC3B,MAAM,MAAM,EACZ,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,UAAS;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,IAAI,CAAC;CACd;;;EAyFP,CAAC"}
|
package/dist/Jobs/enqueueJob.js
CHANGED
|
@@ -6,7 +6,7 @@ const node_crypto_1 = require("node:crypto");
|
|
|
6
6
|
const getJobDefinition_1 = require("./getJobDefinition");
|
|
7
7
|
const getJobTableHandler_1 = require("./getJobTableHandler");
|
|
8
8
|
const getJobParams_1 = require("./getJobParams");
|
|
9
|
-
/**
|
|
9
|
+
/** Enqueue configured jobs inside the trigger, start or rerun transaction. */
|
|
10
10
|
const enqueueJob = async (prostgles, transaction, name, targetRowPkey, options = {}) => {
|
|
11
11
|
const { definition } = (0, getJobDefinition_1.getJobDefinition)(prostgles, name);
|
|
12
12
|
if (definition.runAs === "user" && !options.userId) {
|
|
@@ -80,6 +80,7 @@ const enqueueJob = async (prostgles, transaction, name, targetRowPkey, options =
|
|
|
80
80
|
occurrence: options.occurrence?.toISOString() ?? null,
|
|
81
81
|
reason: options.reason ?? "trigger",
|
|
82
82
|
max_attempts: definition.retry?.maxAttempts ?? 1,
|
|
83
|
+
max_stalled_count: definition.retry?.maxStalledCount ?? 3,
|
|
83
84
|
delay_ms: definition.retry?.delayMs ?? 1000,
|
|
84
85
|
backoff: definition.retry?.backoff ?? "fixed",
|
|
85
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueueJob.js","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,6CAAyC;AAEzC,yDAAsD;AAEtD,6DAA0D;AAC1D,iDAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"enqueueJob.js","sourceRoot":"","sources":["../../lib/Jobs/enqueueJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJobDefinition.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,EAAE,MAAM,MAAM;;;CASlE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,WAAW,SAAS,EAAE,QAAQ,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"getJobDefinition.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS,EAAE,MAAM,MAAM;;;CASlE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,WAAW,SAAS,EAAE,QAAQ,WAAW,EAAE,kBA6DvF,CAAC"}
|
|
@@ -28,6 +28,10 @@ const validateJobDefinitions = async (prostgles, tables) => {
|
|
|
28
28
|
(retry &&
|
|
29
29
|
(!Number.isSafeInteger(retry.maxAttempts) ||
|
|
30
30
|
retry.maxAttempts < 1 ||
|
|
31
|
+
(retry.maxStalledCount !== undefined &&
|
|
32
|
+
(!Number.isSafeInteger(retry.maxStalledCount) ||
|
|
33
|
+
retry.maxStalledCount < 0 ||
|
|
34
|
+
retry.maxStalledCount > 2_147_483_647)) ||
|
|
31
35
|
!Number.isFinite(retry.delayMs ?? 1000) ||
|
|
32
36
|
(retry.delayMs ?? 1000) < 0 ||
|
|
33
37
|
(retry.backoff !== undefined && !["fixed", "exponential"].includes(retry.backoff))))) {
|
|
@@ -38,7 +42,6 @@ const validateJobDefinitions = async (prostgles, tables) => {
|
|
|
38
42
|
if (!table ||
|
|
39
43
|
table.is_view ||
|
|
40
44
|
!table.columns.some((c) => c.is_pkey) ||
|
|
41
|
-
!trigger.on.length ||
|
|
42
45
|
trigger.on.some((command) => !["insert", "update"].includes(command)) ||
|
|
43
46
|
trigger.columns?.some((column) => !table.columns.some((c) => c.name === column))) {
|
|
44
47
|
throw new Error(`Invalid row trigger for ${name}: expected a table with a primary key and valid columns`);
|
|
@@ -53,15 +56,15 @@ const validateJobDefinitions = async (prostgles, tables) => {
|
|
|
53
56
|
throw new Error(`Job source table not found: ${table.name}`);
|
|
54
57
|
await tableHandler.find(trigger.when, { select: "", limit: 0 });
|
|
55
58
|
}
|
|
56
|
-
// Validate untyped JavaScript configurations too.
|
|
57
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
58
59
|
}
|
|
59
60
|
else if (trigger.type === "schedule") {
|
|
60
61
|
if (job.runAs === "user")
|
|
61
62
|
throw new Error(`Scheduled job ${name} cannot runAs user`);
|
|
62
63
|
(0, cronSchedule_1.parseCronSchedule)(trigger);
|
|
64
|
+
/* Validate untyped JavaScript configurations too. */
|
|
65
|
+
/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */
|
|
63
66
|
}
|
|
64
|
-
else {
|
|
67
|
+
else if (trigger.type !== "manual") {
|
|
65
68
|
throw new Error(`Invalid job trigger: ${name}`);
|
|
66
69
|
}
|
|
67
70
|
await (0, getJobParams_1.getJobParams)(prostgles, job.params, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJobDefinition.js","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getJobDefinition.js","sourceRoot":"","sources":["../../lib/Jobs/getJobDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJobRetention.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAU,WAAW,SAAS,
|
|
1
|
+
{"version":3,"file":"getJobRetention.d.ts","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,GAAU,WAAW,SAAS,kCAmEzD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC"}
|
|
@@ -7,14 +7,14 @@ const getJobRetention = async (prostgles) => {
|
|
|
7
7
|
for (const [jobName, definition] of Object.entries(prostgles.opts.jobs?.definitions ?? {})) {
|
|
8
8
|
const retention = definition.retention;
|
|
9
9
|
if (retention === undefined) {
|
|
10
|
-
if (definition.trigger.type
|
|
11
|
-
|
|
10
|
+
if (definition.trigger.type !== "row") {
|
|
11
|
+
const jobType = definition.trigger.type === "schedule" ? "scheduled" : "manual";
|
|
12
|
+
throw new Error(`Invalid job retention for ${jobName}: required for ${jobType} jobs`);
|
|
12
13
|
}
|
|
13
14
|
continue;
|
|
14
15
|
}
|
|
15
|
-
if (definition.trigger.type !== "
|
|
16
|
-
(retention
|
|
17
|
-
throw new Error(`Invalid job retention for ${jobName}: expected a scheduled job's status policies or "forever"`);
|
|
16
|
+
if (definition.trigger.type === "row" || (retention !== "forever" && !(0, prostgles_types_1.isObject)(retention))) {
|
|
17
|
+
throw new Error(`Invalid job retention for ${jobName}: expected status policies or "forever" for a job without a row`);
|
|
18
18
|
}
|
|
19
19
|
if (retention === "forever")
|
|
20
20
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJobRetention.js","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAIpC,MAAM,eAAe,GAAG,KAAK,EAAE,SAAoB,EAAE,EAAE;IAC5D,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3F,MAAM,SAAS,GAAY,UAAU,CAAC,SAAS,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"getJobRetention.js","sourceRoot":"","sources":["../../lib/Jobs/getJobRetention.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const getJobTableHooks = (prostgles, tableHooks) => {
|
|
|
11
11
|
// Prepend in reverse order so job hooks retain their alphabetical execution order.
|
|
12
12
|
const definitions = Object.entries(prostgles.opts.jobs.definitions).sort(([firstName], [secondName]) => secondName.localeCompare(firstName));
|
|
13
13
|
for (const [name, { trigger }] of definitions) {
|
|
14
|
-
if (trigger.type !== "row")
|
|
14
|
+
if (trigger.type !== "row" || !trigger.on.length)
|
|
15
15
|
continue;
|
|
16
16
|
const hook = {
|
|
17
17
|
hookKey: `job:${name}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJobTableHooks.js","sourceRoot":"","sources":["../../lib/Jobs/getJobTableHooks.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAK3D,6CAA0C;AAE1C,yCAA+E;AAExE,MAAM,gBAAgB,GAAG,CAC9B,SAAoB,EACpB,UAA6C,EAC7C,EAAE;IACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IAC5C,MAAM,WAAW,GAA0B,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7D,mFAAmF;IACnF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACtE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CACnE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;YAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"getJobTableHooks.js","sourceRoot":"","sources":["../../lib/Jobs/getJobTableHooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,9 @@ export declare const jobTableConfig: {
|
|
|
29
29
|
readonly reason: "TEXT NOT NULL DEFAULT 'trigger'";
|
|
30
30
|
readonly status: "TEXT NOT NULL DEFAULT 'pending'";
|
|
31
31
|
readonly attempts: "INTEGER NOT NULL DEFAULT 0";
|
|
32
|
+
readonly stalled_count: "INTEGER NOT NULL DEFAULT 0";
|
|
32
33
|
readonly max_attempts: "INTEGER NOT NULL";
|
|
34
|
+
readonly max_stalled_count: "INTEGER NOT NULL DEFAULT 3";
|
|
33
35
|
readonly delay_ms: "DOUBLE PRECISION NOT NULL";
|
|
34
36
|
readonly backoff: "TEXT NOT NULL";
|
|
35
37
|
readonly cancel_requested: "BOOLEAN NOT NULL DEFAULT FALSE";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobTableConfig.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobTableConfig.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"jobTableConfig.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobTableConfig.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWS,CAAC"}
|
package/dist/Jobs/jobUtils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { TableHandler } from "../DboBuilder/TableHandler/TableHandler";
|
|
2
|
-
import type
|
|
2
|
+
import { type JobControlOperation, type JobRecord, type JobValue, type RowTrigger } from "./JobTypes";
|
|
3
3
|
export declare const getJobPrimaryKeyNames: (table: TableHandler) => string[];
|
|
4
4
|
export declare const matchesJobTriggerCondition: (table: TableHandler, targetRowPkey: JobRecord["target_row_pkey"], when: RowTrigger<void, string>["when"]) => Promise<boolean>;
|
|
5
|
+
export declare const assertJobControlStatus: (job: JobRecord, operation: JobControlOperation) => void;
|
|
5
6
|
export declare const assertJobValue: (value: unknown, ancestors?: Set<object>) => asserts value is JobValue;
|
|
6
7
|
export declare const jobError: (error: unknown) => string | any[] | import("prostgles-types").AnyObject;
|
|
7
8
|
export declare class PermanentJobError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobUtils.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"jobUtils.d.ts","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,aACsB,CAAC;AAEhF,eAAO,MAAM,0BAA0B,GACrC,OAAO,YAAY,EACnB,eAAe,SAAS,CAAC,iBAAiB,CAAC,EAC3C,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,qBAC8B,CAAC;AAEvE,eAAO,MAAM,sBAAsB,GAAI,KAAK,SAAS,EAAE,WAAW,mBAAmB,SAOpF,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,CAC3B,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KACpB,OAAO,CAAC,KAAK,IAAI,QAcrB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,yDAAiD,CAAC;AAEzF,qBAAa,iBAAkB,SAAQ,KAAK;CAAG"}
|
package/dist/Jobs/jobUtils.js
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermanentJobError = exports.jobError = exports.assertJobValue = exports.matchesJobTriggerCondition = exports.getJobPrimaryKeyNames = void 0;
|
|
3
|
+
exports.PermanentJobError = exports.jobError = exports.assertJobValue = exports.assertJobControlStatus = exports.matchesJobTriggerCondition = exports.getJobPrimaryKeyNames = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const JobTypes_1 = require("./JobTypes");
|
|
5
6
|
const getJobPrimaryKeyNames = (table) => table.columns.filter((column) => column.is_pkey).map((column) => column.name);
|
|
6
7
|
exports.getJobPrimaryKeyNames = getJobPrimaryKeyNames;
|
|
7
8
|
const matchesJobTriggerCondition = async (table, targetRowPkey, when) => !when || !!(await table.findOne({ $and: [targetRowPkey, when] }));
|
|
8
9
|
exports.matchesJobTriggerCondition = matchesJobTriggerCondition;
|
|
10
|
+
const assertJobControlStatus = (job, operation) => {
|
|
11
|
+
const allowedStatuses = JobTypes_1.jobControlStatuses[operation];
|
|
12
|
+
if (allowedStatuses.includes(job.status))
|
|
13
|
+
return;
|
|
14
|
+
throw new Error(`Job "${job.job_name}" (${job.id}): "${operation}" is not allowed while status is "${job.status}". ` +
|
|
15
|
+
`Allowed statuses: ${allowedStatuses.join(", ")}.`);
|
|
16
|
+
};
|
|
17
|
+
exports.assertJobControlStatus = assertJobControlStatus;
|
|
9
18
|
const assertJobValue = (value, ancestors = new Set()) => {
|
|
10
19
|
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
11
20
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobUtils.js","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;
|
|
1
|
+
{"version":3,"file":"jobUtils.js","sourceRoot":"","sources":["../../lib/Jobs/jobUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AAEvD,yCAMoB;AAEb,MAAM,qBAAqB,GAAG,CAAC,KAAmB,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AADnE,QAAA,qBAAqB,yBAC8C;AAEzE,MAAM,0BAA0B,GAAG,KAAK,EAC7C,KAAmB,EACnB,aAA2C,EAC3C,IAAsC,EACtC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAJ1D,QAAA,0BAA0B,8BAIgC;AAEhE,MAAM,sBAAsB,GAAG,CAAC,GAAc,EAAE,SAA8B,EAAE,EAAE;IACvF,MAAM,eAAe,GAAG,6BAAkB,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IACjD,MAAM,IAAI,KAAK,CACb,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,EAAE,OAAO,SAAS,qCAAqC,GAAG,CAAC,MAAM,KAAK;QAClG,qBAAqB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrD,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC;AAEK,MAAM,cAAc,GAGM,CAAC,KAAK,EAAE,YAAY,IAAI,GAAG,EAAU,EAAE,EAAE;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO;IACtF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO;IAChE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,EAC5E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACrE,IAAA,sBAAc,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEK,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAA5E,QAAA,QAAQ,YAAoE;AAEzF,MAAa,iBAAkB,SAAQ,KAAK;CAAG;AAA/C,8CAA+C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAc,SAAS,EAA0B,MAAM,YAAY,CAAC;AAGhF,eAAO,MAAM,MAAM,GACjB,WAAW,SAAS,EACpB,KAAK,OAAO,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAC9C,YAAY,eAAe,EAC3B,UAAU,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"runJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAc,SAAS,EAA0B,MAAM,YAAY,CAAC;AAGhF,eAAO,MAAM,MAAM,GACjB,WAAW,SAAS,EACpB,KAAK,OAAO,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EAC9C,YAAY,eAAe,EAC3B,UAAU,MAAM,OAAO,kBAmMxB,CAAC"}
|
package/dist/Jobs/runJob.js
CHANGED
|
@@ -132,12 +132,23 @@ const runJob = async (prostgles, job, controller, stopping) => {
|
|
|
132
132
|
await heartbeatWork;
|
|
133
133
|
}
|
|
134
134
|
if (stopping()) {
|
|
135
|
-
await db.none(`UPDATE ${tableSQL}
|
|
135
|
+
await db.none(`UPDATE ${tableSQL}
|
|
136
|
+
SET
|
|
137
|
+
status = CASE WHEN cancel_requested THEN 'cancelled' ELSE 'pending' END,
|
|
138
|
+
attempts = attempts - CASE WHEN cancel_requested THEN 0 ELSE 1 END,
|
|
139
|
+
lease_token = NULL,
|
|
140
|
+
locked_until = NULL,
|
|
141
|
+
run_at = clock_timestamp(),
|
|
142
|
+
finished_at = CASE WHEN cancel_requested THEN clock_timestamp() END
|
|
143
|
+
WHERE ${owned}`, claim);
|
|
136
144
|
return;
|
|
137
145
|
}
|
|
138
|
-
const
|
|
146
|
+
const failureAttempts = job.attempts - job.stalled_count;
|
|
147
|
+
const delayMs = Math.min(2_147_483_647, job.delay_ms * (job.backoff === "exponential" ? 2 ** (failureAttempts - 1) : 1));
|
|
139
148
|
const finishJob = async (failure, output) => {
|
|
140
|
-
const retry = failure &&
|
|
149
|
+
const retry = failure &&
|
|
150
|
+
!(failure.error instanceof jobUtils_1.PermanentJobError) &&
|
|
151
|
+
failureAttempts < job.max_attempts;
|
|
141
152
|
const status = !failure ? "succeeded"
|
|
142
153
|
: retry ? "pending"
|
|
143
154
|
: "failed";
|
package/dist/Jobs/runJob.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runJob.js","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runJob.js","sourceRoot":"","sources":["../../lib/Jobs/runJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Prostgles } from "../Prostgles";
|
|
2
|
+
import type { JobRecord, JobTransaction, JobValue } from "./JobTypes";
|
|
3
|
+
export declare const startJob: (prostgles: Prostgles, transaction: JobTransaction, name: string, options: {
|
|
4
|
+
params: Record<string, JobValue>;
|
|
5
|
+
row: JobRecord["target_row_pkey"] | undefined;
|
|
6
|
+
userId: string | undefined;
|
|
7
|
+
}) => Promise<{
|
|
8
|
+
jobId: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=startJob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startJob.d.ts","sourceRoot":"","sources":["../../lib/Jobs/startJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtE,eAAO,MAAM,QAAQ,GACnB,WAAW,SAAS,EACpB,aAAa,cAAc,EAC3B,MAAM,MAAM,EACZ,SAAS;IACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;;EA6BF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startJob = void 0;
|
|
4
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const ExecutionContext_1 = require("../ExecutionContext");
|
|
6
|
+
const enqueueJob_1 = require("./enqueueJob");
|
|
7
|
+
const getJobDefinition_1 = require("./getJobDefinition");
|
|
8
|
+
const jobUtils_1 = require("./jobUtils");
|
|
9
|
+
const startJob = async (prostgles, transaction, name, options) => {
|
|
10
|
+
const { trigger } = (0, getJobDefinition_1.getJobDefinition)(prostgles, name).definition;
|
|
11
|
+
const enqueue = async (targetRowPkey) => {
|
|
12
|
+
const { jobId } = await (0, enqueueJob_1.enqueueJob)(prostgles, transaction, name, targetRowPkey, options);
|
|
13
|
+
return { jobId };
|
|
14
|
+
};
|
|
15
|
+
if (trigger.type !== "row") {
|
|
16
|
+
if (options.row)
|
|
17
|
+
throw new Error(`Job ${name} does not accept a row`);
|
|
18
|
+
return enqueue({});
|
|
19
|
+
}
|
|
20
|
+
const rowTable = transaction.dbx[trigger.table];
|
|
21
|
+
if (!rowTable)
|
|
22
|
+
throw new Error(`Job source table not found: ${trigger.table}`);
|
|
23
|
+
const primaryKeys = (0, jobUtils_1.getJobPrimaryKeyNames)(rowTable);
|
|
24
|
+
const rowLookup = options.row;
|
|
25
|
+
if (!rowLookup || !primaryKeys.length || primaryKeys.some((key) => rowLookup[key] == null)) {
|
|
26
|
+
throw new Error("Job row primary key is unavailable");
|
|
27
|
+
}
|
|
28
|
+
const filter = Object.fromEntries(primaryKeys.map((key) => [key, { $eq: rowLookup[key] }]));
|
|
29
|
+
/* Lock the target row before enqueueing, matching automatic row triggers. */
|
|
30
|
+
const row = await rowTable.findOne(filter, { forUpdate: true });
|
|
31
|
+
if (!row)
|
|
32
|
+
throw new Error("Job row is unavailable");
|
|
33
|
+
const targetRowPkey = (0, prostgles_types_1.pickKeys)(row, primaryKeys);
|
|
34
|
+
if (!(await (0, jobUtils_1.matchesJobTriggerCondition)(rowTable, targetRowPkey, trigger.when))) {
|
|
35
|
+
throw new Error("Job row does not satisfy its trigger condition");
|
|
36
|
+
}
|
|
37
|
+
return (0, ExecutionContext_1.runJobControl)(rowTable, targetRowPkey, { jobName: name, operation: "startOrRetry" }, () => enqueue(targetRowPkey));
|
|
38
|
+
};
|
|
39
|
+
exports.startJob = startJob;
|
|
40
|
+
//# sourceMappingURL=startJob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startJob.js","sourceRoot":"","sources":["../../lib/Jobs/startJob.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,0DAAoD;AAEpD,6CAA0C;AAC1C,yDAAsD;AAEtD,yCAA+E;AAExE,MAAM,QAAQ,GAAG,KAAK,EAC3B,SAAoB,EACpB,WAA2B,EAC3B,IAAY,EACZ,OAIC,EACD,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mCAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;IACjE,MAAM,OAAO,GAAG,KAAK,EAAE,aAA2C,EAAE,EAAE;QACpE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,uBAAU,EAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACzF,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,6EAA6E;IAC7E,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE,WAAW,CAAiC,CAAC;IACjF,IAAI,CAAC,CAAC,MAAM,IAAA,qCAA0B,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAA,gCAAa,EAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CAC/F,OAAO,CAAC,aAAa,CAAC,CACvB,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,QAAQ,YAqCnB"}
|
package/dist/ProstglesTypes.d.ts
CHANGED
|
@@ -188,7 +188,7 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
|
|
|
188
188
|
* Server-side functions that can be invoked by the client
|
|
189
189
|
*/
|
|
190
190
|
functions?: ServerFunctionDefinitions<S, SUser, Context>;
|
|
191
|
-
/** Durable jobs triggered by row changes or schedules. */
|
|
191
|
+
/** Durable jobs triggered manually, by row changes or by schedules. */
|
|
192
192
|
jobs?: JobsOptions<S, Context>;
|
|
193
193
|
/**
|
|
194
194
|
* If true then will test all table methods on each socket connect.
|