pg-boss 11.1.1 → 12.0.0-beta1
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/README.md +2 -2
- package/dist/index.d.mts +269 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2349 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +43 -16
- package/docker-compose.yaml +0 -15
- package/src/attorney.js +0 -258
- package/src/boss.js +0 -159
- package/src/contractor.js +0 -99
- package/src/db.js +0 -50
- package/src/index.js +0 -211
- package/src/manager.js +0 -697
- package/src/migrationStore.js +0 -155
- package/src/plans.js +0 -1017
- package/src/timekeeper.js +0 -203
- package/src/tools.js +0 -45
- package/src/worker.js +0 -99
- package/types.d.ts +0 -323
package/README.md
CHANGED
|
@@ -82,9 +82,9 @@ To run the test suite, linter and code coverage:
|
|
|
82
82
|
npm run cover
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
The test suite will try and create a new database named pgboss. The [config.json](https://github.com/timgit/pg-boss/test/config.json) file has the default credentials to connect to postgres.
|
|
85
|
+
The test suite will try and create a new database named pgboss. The [config.json](https://github.com/timgit/pg-boss/blob/master/test/config.json) file has the default credentials to connect to postgres.
|
|
86
86
|
|
|
87
|
-
The [Docker Compose](https://github.com/timgit/pg-boss/docker-compose.yaml) file can be used to start a local postgres instance for testing:
|
|
87
|
+
The [Docker Compose](https://github.com/timgit/pg-boss/blob/master/docker-compose.yaml) file can be used to start a local postgres instance for testing:
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
90
|
docker compose up
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import EventEmitter from "node:events";
|
|
2
|
+
|
|
3
|
+
//#region src/types.d.ts
|
|
4
|
+
type JobStates = {
|
|
5
|
+
created: 'created';
|
|
6
|
+
retry: 'retry';
|
|
7
|
+
active: 'active';
|
|
8
|
+
completed: 'completed';
|
|
9
|
+
cancelled: 'cancelled';
|
|
10
|
+
failed: 'failed';
|
|
11
|
+
};
|
|
12
|
+
type QueuePolicies = {
|
|
13
|
+
standard: 'standard';
|
|
14
|
+
short: 'short';
|
|
15
|
+
singleton: 'singleton';
|
|
16
|
+
stately: 'stately';
|
|
17
|
+
};
|
|
18
|
+
interface IDatabase {
|
|
19
|
+
executeSql(text: string, values?: unknown[]): Promise<{
|
|
20
|
+
rows: any[];
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
interface DatabaseOptions {
|
|
24
|
+
application_name?: string;
|
|
25
|
+
database?: string;
|
|
26
|
+
user?: string;
|
|
27
|
+
password?: string | (() => string) | (() => Promise<string>);
|
|
28
|
+
host?: string;
|
|
29
|
+
port?: number;
|
|
30
|
+
schema?: string;
|
|
31
|
+
ssl?: any;
|
|
32
|
+
connectionString?: string;
|
|
33
|
+
max?: number;
|
|
34
|
+
db?: IDatabase;
|
|
35
|
+
}
|
|
36
|
+
interface SchedulingOptions {
|
|
37
|
+
schedule?: boolean;
|
|
38
|
+
clockMonitorIntervalSeconds?: number;
|
|
39
|
+
cronWorkerIntervalSeconds?: number;
|
|
40
|
+
cronMonitorIntervalSeconds?: number;
|
|
41
|
+
}
|
|
42
|
+
interface MaintenanceOptions {
|
|
43
|
+
supervise?: boolean;
|
|
44
|
+
migrate?: boolean;
|
|
45
|
+
warningSlowQuerySeconds?: number;
|
|
46
|
+
warningQueueSize?: number;
|
|
47
|
+
superviseIntervalSeconds?: number;
|
|
48
|
+
maintenanceIntervalSeconds?: number;
|
|
49
|
+
queueCacheIntervalSeconds?: number;
|
|
50
|
+
monitorIntervalSeconds?: number;
|
|
51
|
+
}
|
|
52
|
+
interface ConstructorOptions extends DatabaseOptions, SchedulingOptions, MaintenanceOptions {}
|
|
53
|
+
interface QueueOptions {
|
|
54
|
+
expireInSeconds?: number;
|
|
55
|
+
retentionSeconds?: number;
|
|
56
|
+
deleteAfterSeconds?: number;
|
|
57
|
+
retryLimit?: number;
|
|
58
|
+
retryDelay?: number;
|
|
59
|
+
retryBackoff?: boolean;
|
|
60
|
+
retryDelayMax?: number;
|
|
61
|
+
}
|
|
62
|
+
interface JobOptions {
|
|
63
|
+
id?: string;
|
|
64
|
+
priority?: number;
|
|
65
|
+
startAfter?: number | string | Date;
|
|
66
|
+
singletonKey?: string;
|
|
67
|
+
singletonSeconds?: number;
|
|
68
|
+
singletonNextSlot?: boolean;
|
|
69
|
+
keepUntil?: number | string | Date;
|
|
70
|
+
}
|
|
71
|
+
interface ConnectionOptions {
|
|
72
|
+
db?: IDatabase;
|
|
73
|
+
}
|
|
74
|
+
type InsertOptions = ConnectionOptions;
|
|
75
|
+
type SendOptions = JobOptions & QueueOptions & ConnectionOptions;
|
|
76
|
+
type QueuePolicy = 'standard' | 'short' | 'singleton' | 'stately' | 'exclusive';
|
|
77
|
+
interface Queue extends QueueOptions {
|
|
78
|
+
name: string;
|
|
79
|
+
policy?: QueuePolicy;
|
|
80
|
+
partition?: boolean;
|
|
81
|
+
deadLetter?: string;
|
|
82
|
+
warningQueueSize?: number;
|
|
83
|
+
}
|
|
84
|
+
interface QueueResult extends Queue {
|
|
85
|
+
deferredCount: number;
|
|
86
|
+
queuedCount: number;
|
|
87
|
+
activeCount: number;
|
|
88
|
+
totalCount: number;
|
|
89
|
+
table: string;
|
|
90
|
+
createdOn: Date;
|
|
91
|
+
updatedOn: Date;
|
|
92
|
+
singletonsActive: string[] | null;
|
|
93
|
+
}
|
|
94
|
+
type ScheduleOptions = SendOptions & {
|
|
95
|
+
tz?: string;
|
|
96
|
+
key?: string;
|
|
97
|
+
};
|
|
98
|
+
interface JobPollingOptions {
|
|
99
|
+
pollingIntervalSeconds?: number;
|
|
100
|
+
}
|
|
101
|
+
interface JobFetchOptions {
|
|
102
|
+
includeMetadata?: boolean;
|
|
103
|
+
priority?: boolean;
|
|
104
|
+
batchSize?: number;
|
|
105
|
+
ignoreStartAfter?: boolean;
|
|
106
|
+
}
|
|
107
|
+
type WorkOptions = JobFetchOptions & JobPollingOptions;
|
|
108
|
+
type FetchOptions = JobFetchOptions & ConnectionOptions;
|
|
109
|
+
interface WorkHandler<ReqData> {
|
|
110
|
+
(job: Job<ReqData>[]): Promise<any>;
|
|
111
|
+
}
|
|
112
|
+
interface WorkWithMetadataHandler<ReqData> {
|
|
113
|
+
(job: JobWithMetadata<ReqData>[]): Promise<any>;
|
|
114
|
+
}
|
|
115
|
+
interface Request {
|
|
116
|
+
name: string;
|
|
117
|
+
data?: object;
|
|
118
|
+
options?: SendOptions;
|
|
119
|
+
}
|
|
120
|
+
interface Schedule {
|
|
121
|
+
name: string;
|
|
122
|
+
key: string;
|
|
123
|
+
cron: string;
|
|
124
|
+
timezone: string;
|
|
125
|
+
data?: object;
|
|
126
|
+
options?: SendOptions;
|
|
127
|
+
}
|
|
128
|
+
interface Job<T = object> {
|
|
129
|
+
id: string;
|
|
130
|
+
name: string;
|
|
131
|
+
data: T;
|
|
132
|
+
expireInSeconds: number;
|
|
133
|
+
}
|
|
134
|
+
interface JobWithMetadata<T = object> extends Job<T> {
|
|
135
|
+
priority: number;
|
|
136
|
+
state: 'created' | 'retry' | 'active' | 'completed' | 'cancelled' | 'failed';
|
|
137
|
+
retryLimit: number;
|
|
138
|
+
retryCount: number;
|
|
139
|
+
retryDelay: number;
|
|
140
|
+
retryBackoff: boolean;
|
|
141
|
+
retryDelayMax?: number;
|
|
142
|
+
startAfter: Date;
|
|
143
|
+
startedOn: Date;
|
|
144
|
+
singletonKey: string | null;
|
|
145
|
+
singletonOn: Date | null;
|
|
146
|
+
expireInSeconds: number;
|
|
147
|
+
deleteAfterSeconds: number;
|
|
148
|
+
createdOn: Date;
|
|
149
|
+
completedOn: Date | null;
|
|
150
|
+
keepUntil: Date;
|
|
151
|
+
policy: QueuePolicy;
|
|
152
|
+
deadLetter: string;
|
|
153
|
+
output: object;
|
|
154
|
+
}
|
|
155
|
+
interface JobInsert<T = object> {
|
|
156
|
+
id?: string;
|
|
157
|
+
data?: T;
|
|
158
|
+
priority?: number;
|
|
159
|
+
retryLimit?: number;
|
|
160
|
+
retryDelay?: number;
|
|
161
|
+
retryBackoff?: boolean;
|
|
162
|
+
retryDelayMax?: number;
|
|
163
|
+
startAfter?: Date | number | string;
|
|
164
|
+
singletonKey?: string;
|
|
165
|
+
singletonSeconds?: number;
|
|
166
|
+
expireInSeconds?: number;
|
|
167
|
+
deleteAfterSeconds?: number;
|
|
168
|
+
retentionSeconds?: number;
|
|
169
|
+
}
|
|
170
|
+
type WorkerState = 'created' | 'active' | 'stopping' | 'stopped';
|
|
171
|
+
interface WipData {
|
|
172
|
+
id: string;
|
|
173
|
+
name: string;
|
|
174
|
+
options: WorkOptions;
|
|
175
|
+
state: WorkerState;
|
|
176
|
+
count: number;
|
|
177
|
+
createdOn: number;
|
|
178
|
+
lastFetchedOn: number | null;
|
|
179
|
+
lastJobStartedOn: number | null;
|
|
180
|
+
lastJobEndedOn: number | null;
|
|
181
|
+
lastJobDuration: number | null;
|
|
182
|
+
lastError: object | null;
|
|
183
|
+
lastErrorOn: number | null;
|
|
184
|
+
}
|
|
185
|
+
interface StopOptions {
|
|
186
|
+
close?: boolean;
|
|
187
|
+
graceful?: boolean;
|
|
188
|
+
timeout?: number;
|
|
189
|
+
wait?: boolean;
|
|
190
|
+
}
|
|
191
|
+
interface OffWorkOptions {
|
|
192
|
+
id: string;
|
|
193
|
+
}
|
|
194
|
+
type UpdateQueueOptions = Omit<Queue, 'name' | 'partition' | 'policy'>;
|
|
195
|
+
interface Warning {
|
|
196
|
+
message: string;
|
|
197
|
+
data: object;
|
|
198
|
+
}
|
|
199
|
+
interface CommandResponse {}
|
|
200
|
+
type PgBossEventMap = {
|
|
201
|
+
error: [error: Error];
|
|
202
|
+
warning: [warning: Warning];
|
|
203
|
+
wip: [data: WipData[]];
|
|
204
|
+
stopped: [];
|
|
205
|
+
};
|
|
206
|
+
//#endregion
|
|
207
|
+
//#region src/index.d.ts
|
|
208
|
+
declare class PgBoss extends EventEmitter<PgBossEventMap> {
|
|
209
|
+
#private;
|
|
210
|
+
constructor(connectionString: string);
|
|
211
|
+
constructor(options: ConstructorOptions);
|
|
212
|
+
static getConstructionPlans(schema?: string): string;
|
|
213
|
+
static getMigrationPlans(schema?: string, version?: number): string;
|
|
214
|
+
static getRollbackPlans(schema?: string, version?: number): string;
|
|
215
|
+
static states: JobStates;
|
|
216
|
+
static policies: QueuePolicies;
|
|
217
|
+
start(): Promise<this>;
|
|
218
|
+
stop(options?: StopOptions): Promise<void>;
|
|
219
|
+
send(request: Request): Promise<string | null>;
|
|
220
|
+
send(name: string, data?: object, options?: SendOptions): Promise<string | null>;
|
|
221
|
+
sendAfter(name: string, data: object, options: SendOptions, date: Date): Promise<string | null>;
|
|
222
|
+
sendAfter(name: string, data: object, options: SendOptions, dateString: string): Promise<string | null>;
|
|
223
|
+
sendAfter(name: string, data: object, options: SendOptions, seconds: number): Promise<string | null>;
|
|
224
|
+
sendThrottled(name: string, data: object, options: SendOptions, seconds: number, key?: string): Promise<string | null>;
|
|
225
|
+
sendDebounced(name: string, data: object, options: SendOptions, seconds: number, key?: string): Promise<string | null>;
|
|
226
|
+
insert(name: string, jobs: JobInsert[], options?: InsertOptions): Promise<string[] | null>;
|
|
227
|
+
fetch<T>(name: string, options: FetchOptions & {
|
|
228
|
+
includeMetadata: true;
|
|
229
|
+
}): Promise<JobWithMetadata<T>[]>;
|
|
230
|
+
fetch<T>(name: string, options?: FetchOptions): Promise<Job<T>[]>;
|
|
231
|
+
work<ReqData>(name: string, handler: WorkHandler<ReqData>): Promise<string>;
|
|
232
|
+
work<ReqData>(name: string, options: WorkOptions & {
|
|
233
|
+
includeMetadata: true;
|
|
234
|
+
}, handler: WorkWithMetadataHandler<ReqData>): Promise<string>;
|
|
235
|
+
work<ReqData>(name: string, options: WorkOptions, handler: WorkHandler<ReqData>): Promise<string>;
|
|
236
|
+
offWork(name: string): Promise<void>;
|
|
237
|
+
offWork(options: OffWorkOptions): Promise<void>;
|
|
238
|
+
notifyWorker(workerId: string): void;
|
|
239
|
+
subscribe(event: string, name: string): Promise<void>;
|
|
240
|
+
unsubscribe(event: string, name: string): Promise<void>;
|
|
241
|
+
publish(event: string, data?: object, options?: SendOptions): Promise<void>;
|
|
242
|
+
cancel(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
|
|
243
|
+
resume(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
|
|
244
|
+
retry(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
|
|
245
|
+
deleteJob(name: string, id: string | string[], options?: ConnectionOptions): Promise<CommandResponse>;
|
|
246
|
+
deleteQueuedJobs(name: string): Promise<void>;
|
|
247
|
+
deleteStoredJobs(name: string): Promise<void>;
|
|
248
|
+
deleteAllJobs(name: string): Promise<void>;
|
|
249
|
+
complete(name: string, id: string | string[], data?: object, options?: ConnectionOptions): Promise<CommandResponse>;
|
|
250
|
+
fail(name: string, id: string | string[], data?: object, options?: ConnectionOptions): Promise<CommandResponse>;
|
|
251
|
+
getJobById<T>(name: string, id: string, options?: ConnectionOptions): Promise<JobWithMetadata<T> | null>;
|
|
252
|
+
createQueue(name: string, options?: Omit<Queue, 'name'>): Promise<void>;
|
|
253
|
+
updateQueue(name: string, options?: UpdateQueueOptions): Promise<void>;
|
|
254
|
+
deleteQueue(name: string): Promise<void>;
|
|
255
|
+
getQueues(names?: string[]): Promise<QueueResult[]>;
|
|
256
|
+
getQueue(name: string): Promise<QueueResult | null>;
|
|
257
|
+
getQueueStats(name: string): Promise<QueueResult>;
|
|
258
|
+
supervise(name?: string): Promise<void>;
|
|
259
|
+
isInstalled(): Promise<boolean>;
|
|
260
|
+
schemaVersion(): Promise<number | null>;
|
|
261
|
+
schedule(name: string, cron: string, data?: object, options?: ScheduleOptions): Promise<void>;
|
|
262
|
+
unschedule(name: string, key?: string): Promise<void>;
|
|
263
|
+
getSchedules(name?: string, key?: string): Promise<Schedule[]>;
|
|
264
|
+
getDb(): IDatabase;
|
|
265
|
+
}
|
|
266
|
+
declare const states: JobStates, policies: QueuePolicies, getConstructionPlans: typeof PgBoss.getConstructionPlans, getMigrationPlans: typeof PgBoss.getMigrationPlans, getRollbackPlans: typeof PgBoss.getRollbackPlans;
|
|
267
|
+
//#endregion
|
|
268
|
+
export { type ConnectionOptions, type ConstructorOptions, type IDatabase as Db, type FetchOptions, type Job, type JobFetchOptions, type JobInsert, type JobPollingOptions, type JobStates, type JobWithMetadata, type MaintenanceOptions, type OffWorkOptions, PgBoss, PgBoss as default, type Queue, type QueuePolicies, type QueueResult, type Request, type Schedule, type ScheduleOptions, type SchedulingOptions, type StopOptions, type WipData, type WorkHandler, type WorkOptions, type WorkWithMetadataHandler, getConstructionPlans, getMigrationPlans, getRollbackPlans, policies, states };
|
|
269
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|