@azlib/scheduler 0.2.0 → 1.0.0
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 +48 -1
- package/dist/index.cjs +375 -35
- package/dist/index.d.cts +49 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +49 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +375 -36
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { SqlClientAdapter, SqlDialectAdapter } from "@azlib/persistence";
|
|
2
|
+
|
|
1
3
|
//#region src/contracts/scheduler-types.d.ts
|
|
2
4
|
type SchedulerMode = "standalone" | "embedded";
|
|
3
5
|
type ScheduleType = "once" | "cron";
|
|
@@ -74,6 +76,12 @@ interface SchedulerServiceOptions {
|
|
|
74
76
|
};
|
|
75
77
|
tickIntervalMs?: number;
|
|
76
78
|
maxDueJobsPerTick?: number;
|
|
79
|
+
persistence?: SchedulerPersistenceConfig;
|
|
80
|
+
}
|
|
81
|
+
interface SchedulerPersistenceConfig {
|
|
82
|
+
client: SqlClientAdapter;
|
|
83
|
+
dialect: SqlDialectAdapter;
|
|
84
|
+
namespace?: string;
|
|
77
85
|
}
|
|
78
86
|
interface SchedulerHandlerRegistry {
|
|
79
87
|
register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
|
|
@@ -162,11 +170,51 @@ interface SchedulerDashboardService {
|
|
|
162
170
|
}
|
|
163
171
|
declare function createSchedulerDashboardService(scheduler: SchedulerService): SchedulerDashboardService;
|
|
164
172
|
//#endregion
|
|
173
|
+
//#region src/core/job-execution-store.d.ts
|
|
174
|
+
interface JobExecutionStore {
|
|
175
|
+
create(record: SchedulerExecutionRecord): Promise<SchedulerExecutionRecord>;
|
|
176
|
+
update(executionId: string, patch: Partial<Omit<SchedulerExecutionRecord, "executionId">>): Promise<SchedulerExecutionRecord | null>;
|
|
177
|
+
listByJob(jobId: string): Promise<SchedulerExecutionRecord[]>;
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/core/schedule-cursor-store.d.ts
|
|
181
|
+
interface ScheduleCursorRecord {
|
|
182
|
+
jobId: string;
|
|
183
|
+
lastEvaluatedAt: string;
|
|
184
|
+
lastTriggeredAt?: string;
|
|
185
|
+
nextRunAt: string;
|
|
186
|
+
version: number;
|
|
187
|
+
}
|
|
188
|
+
interface ScheduleCursorStore {
|
|
189
|
+
set(jobId: string, nextRunAt: string, now: string): Promise<ScheduleCursorRecord>;
|
|
190
|
+
markTriggered(jobId: string, triggeredAt: string): Promise<ScheduleCursorRecord | null>;
|
|
191
|
+
get(jobId: string): Promise<ScheduleCursorRecord | null>;
|
|
192
|
+
remove(jobId: string): Promise<boolean>;
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/core/scheduler-job-store.d.ts
|
|
196
|
+
interface SchedulerJobStore {
|
|
197
|
+
create(jobId: string, definition: SchedulerJobDefinition): Promise<SchedulerJobRecord>;
|
|
198
|
+
update(jobId: string, patch: Partial<SchedulerJobDefinition>): Promise<SchedulerJobRecord | null>;
|
|
199
|
+
setEnabled(jobId: string, enabled: boolean): Promise<SchedulerJobRecord | null>;
|
|
200
|
+
get(jobId: string): Promise<SchedulerJobRecord | null>;
|
|
201
|
+
list(): Promise<SchedulerJobRecord[]>;
|
|
202
|
+
remove(jobId: string): Promise<boolean>;
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
//#region src/core/persistence.d.ts
|
|
206
|
+
interface SchedulerPersistence {
|
|
207
|
+
jobStore: SchedulerJobStore;
|
|
208
|
+
cursorStore: ScheduleCursorStore;
|
|
209
|
+
executionStore: JobExecutionStore;
|
|
210
|
+
}
|
|
211
|
+
declare function createSchedulerPersistence(config: SchedulerPersistenceConfig): SchedulerPersistence;
|
|
212
|
+
//#endregion
|
|
165
213
|
//#region index.d.ts
|
|
166
214
|
declare function createSchedulerService(options: SchedulerServiceOptions): {
|
|
167
215
|
service: SchedulerService;
|
|
168
216
|
handlers: SchedulerHandlerRegistry;
|
|
169
217
|
};
|
|
170
218
|
//#endregion
|
|
171
|
-
export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerService };
|
|
219
|
+
export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
|
|
172
220
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../src/core/job-execution-store.ts","../src/core/schedule-cursor-store.ts","../src/core/scheduler-job-store.ts","../src/core/persistence.ts","../index.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { SqlClientAdapter, SqlDialectAdapter } from "@azlib/persistence";
|
|
2
|
+
|
|
1
3
|
//#region src/contracts/scheduler-types.d.ts
|
|
2
4
|
type SchedulerMode = "standalone" | "embedded";
|
|
3
5
|
type ScheduleType = "once" | "cron";
|
|
@@ -74,6 +76,12 @@ interface SchedulerServiceOptions {
|
|
|
74
76
|
};
|
|
75
77
|
tickIntervalMs?: number;
|
|
76
78
|
maxDueJobsPerTick?: number;
|
|
79
|
+
persistence?: SchedulerPersistenceConfig;
|
|
80
|
+
}
|
|
81
|
+
interface SchedulerPersistenceConfig {
|
|
82
|
+
client: SqlClientAdapter;
|
|
83
|
+
dialect: SqlDialectAdapter;
|
|
84
|
+
namespace?: string;
|
|
77
85
|
}
|
|
78
86
|
interface SchedulerHandlerRegistry {
|
|
79
87
|
register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
|
|
@@ -162,11 +170,51 @@ interface SchedulerDashboardService {
|
|
|
162
170
|
}
|
|
163
171
|
declare function createSchedulerDashboardService(scheduler: SchedulerService): SchedulerDashboardService;
|
|
164
172
|
//#endregion
|
|
173
|
+
//#region src/core/job-execution-store.d.ts
|
|
174
|
+
interface JobExecutionStore {
|
|
175
|
+
create(record: SchedulerExecutionRecord): Promise<SchedulerExecutionRecord>;
|
|
176
|
+
update(executionId: string, patch: Partial<Omit<SchedulerExecutionRecord, "executionId">>): Promise<SchedulerExecutionRecord | null>;
|
|
177
|
+
listByJob(jobId: string): Promise<SchedulerExecutionRecord[]>;
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/core/schedule-cursor-store.d.ts
|
|
181
|
+
interface ScheduleCursorRecord {
|
|
182
|
+
jobId: string;
|
|
183
|
+
lastEvaluatedAt: string;
|
|
184
|
+
lastTriggeredAt?: string;
|
|
185
|
+
nextRunAt: string;
|
|
186
|
+
version: number;
|
|
187
|
+
}
|
|
188
|
+
interface ScheduleCursorStore {
|
|
189
|
+
set(jobId: string, nextRunAt: string, now: string): Promise<ScheduleCursorRecord>;
|
|
190
|
+
markTriggered(jobId: string, triggeredAt: string): Promise<ScheduleCursorRecord | null>;
|
|
191
|
+
get(jobId: string): Promise<ScheduleCursorRecord | null>;
|
|
192
|
+
remove(jobId: string): Promise<boolean>;
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region src/core/scheduler-job-store.d.ts
|
|
196
|
+
interface SchedulerJobStore {
|
|
197
|
+
create(jobId: string, definition: SchedulerJobDefinition): Promise<SchedulerJobRecord>;
|
|
198
|
+
update(jobId: string, patch: Partial<SchedulerJobDefinition>): Promise<SchedulerJobRecord | null>;
|
|
199
|
+
setEnabled(jobId: string, enabled: boolean): Promise<SchedulerJobRecord | null>;
|
|
200
|
+
get(jobId: string): Promise<SchedulerJobRecord | null>;
|
|
201
|
+
list(): Promise<SchedulerJobRecord[]>;
|
|
202
|
+
remove(jobId: string): Promise<boolean>;
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
//#region src/core/persistence.d.ts
|
|
206
|
+
interface SchedulerPersistence {
|
|
207
|
+
jobStore: SchedulerJobStore;
|
|
208
|
+
cursorStore: ScheduleCursorStore;
|
|
209
|
+
executionStore: JobExecutionStore;
|
|
210
|
+
}
|
|
211
|
+
declare function createSchedulerPersistence(config: SchedulerPersistenceConfig): SchedulerPersistence;
|
|
212
|
+
//#endregion
|
|
165
213
|
//#region index.d.ts
|
|
166
214
|
declare function createSchedulerService(options: SchedulerServiceOptions): {
|
|
167
215
|
service: SchedulerService;
|
|
168
216
|
handlers: SchedulerHandlerRegistry;
|
|
169
217
|
};
|
|
170
218
|
//#endregion
|
|
171
|
-
export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerService };
|
|
219
|
+
export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
|
|
172
220
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../src/core/job-execution-store.ts","../src/core/schedule-cursor-store.ts","../src/core/scheduler-job-store.ts","../src/core/persistence.ts","../index.ts"],"mappings":";;;KAEY,aAAA;AAAA,KAEA,YAAA;AAAA,KAEA,sBAAA;AAAA,KAEA,wBAAA;AAAA,UAEK,uBAAA;EACf,YAAA,EAAc,YAAA;EACd,UAAA;EACA,QAAA;EACA,aAAA,GAAgB,sBAAA;EAChB,eAAA,GAAkB,wBAAA;AAAA;AAAA,UAGH,sBAAA;EACf,IAAA;EACA,UAAA;EACA,QAAA,EAAU,uBAAA;EACV,MAAA,EAAQ,OAAO;EACf,OAAA;AAAA;AAAA,UAGe,kBAAA,4BAA8C,sBAAsB,CAAC,OAAA;EACpF,KAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,UAGe,wBAAA;EACf,WAAA;EACA,KAAA;EACA,YAAA;EACA,WAAA;EACA,MAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;AAAA;AAAA,UAGe,oBAAA;EACf,KAAA;EACA,IAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA;AAAA;AAAA,UAGe,uBAAA;EACf,KAAA;EACA,MAAA,GAAS,wBAAwB;EACjC,IAAA;EACA,EAAA;EACA,KAAA;AAAA;AAAA,UAGe,gBAAA;EACf,WAAA,UAAqB,GAAA,EAAK,sBAAA,CAAuB,OAAA,IAAW,OAAA;IAAU,KAAA;EAAA;EACtE,SAAA,UAAmB,KAAA,UAAe,KAAA,EAAO,OAAA,CAAQ,sBAAA,CAAuB,OAAA,KAAY,OAAA;EACpF,QAAA,CAAS,KAAA,WAAgB,OAAA;EACzB,SAAA,CAAU,KAAA,WAAgB,OAAA;EAC1B,SAAA,CAAU,KAAA,WAAgB,OAAA;EAC1B,QAAA,IAAY,OAAA,CAAQ,oBAAA;EACpB,cAAA,CAAe,KAAA,GAAQ,uBAAA,GAA0B,OAAA,CAAQ,wBAAA;EACzD,oBAAA,CAAqB,WAAA,WAAsB,OAAA;EAC3C,KAAA,IAAS,OAAA;EACT,IAAA,IAAQ,OAAA;AAAA;AAAA,UAGO,uBAAA;EACf,IAAA,EAAM,aAAA;EACN,SAAA;EACA,YAAA,0BAAsC,YAAA;EACtC,KAAA,0BAA+B,KAAA;EAC/B,MAAA;IACE,KAAA,CAAM,OAAA,UAAiB,IAAA,GAAO,MAAA;IAC9B,IAAA,CAAK,OAAA,UAAiB,IAAA,GAAO,MAAA;IAC7B,IAAA,CAAK,OAAA,UAAiB,IAAA,GAAO,MAAA;IAC7B,KAAA,CAAM,OAAA,UAAiB,IAAA,GAAO,MAAA;EAAA;EAEhC,cAAA;EACA,iBAAA;EACA,WAAA,GAAc,0BAAA;AAAA;AAAA,UAGC,0BAAA;EACf,MAAA,EAAQ,gBAAA;EACR,OAAA,EAAS,iBAAiB;EAC1B,SAAA;AAAA;AAAA,UAGe,wBAAA;EACf,QAAA,UAAkB,UAAA,UAAoB,OAAA,GAAU,KAAA,EAAO,OAAA,KAAY,OAAA;EACnE,OAAA,CAAQ,UAAA,aAAuB,KAAA,cAAmB,OAAA;EAClD,GAAA,CAAI,UAAA;AAAA;;;UClGW,oBAAA;EACf,OAAA,CAAQ,QAAA,QAAgB,OAAA;EACxB,MAAA,CAAO,QAAA,QAAgB,OAAO;AAAA;;;iBCChB,mBAAA,CACd,SAAA,EAAW,gBAAA,EACX,IAAA,EAAM,oBAAoB;;;cCLf,WAAA;EAAA;;;;;;;;KAUD,gBAAA,WAA2B,WAAA,eAA0B,WAAW;AAAA,cAyB/D,qBAAA;EAAA,QACH,MAAA;EAAA,QACA,IAAA;EAAA,QACA,UAAA;EAAA,QACA,KAAA;EAAA,QACA,SAAA;EAER,WAAA,CAAA;EAKA,aAAA,CAAc,QAAA;EAMd,QAAA,CAAS,MAAA;EAMT,SAAA,CAAU,OAAA;EASV,SAAA,CAAA;EAKA,WAAA,CAAY,QAAA;EAMZ,MAAA,CAAO,IAAA;EAMP,OAAA,CAAQ,KAAA;EASR,YAAA,CAAa,GAAA;EAMb,aAAA,CAAc,IAAA;EASd,iBAAA,CAAkB,QAAA;EAMlB,UAAA,CAAA;EAKA,OAAA,CAAQ,KAAA;EAMR,QAAA,CAAS,MAAA;EAST,YAAA,CAAa,QAAA;EAMb,SAAA,CAAU,OAAA,EAAS,gBAAA;EAMnB,UAAA,CAAW,QAAA,EAAU,gBAAA;EASrB,cAAA,CAAe,QAAA;EAMf,QAAA,CAAA;EAKA,QAAA,CAAA;EAKA,OAAA,CAAQ,IAAA,UAAc,MAAA;EAStB,QAAA,CAAS,OAAA,EAAS,gBAAA,EAAkB,IAAA,WAAU,MAAA;EAS9C,SAAA,CAAU,UAAA,UAAoB,IAAA,WAAU,MAAA;EASxC,KAAA,CAAA;EAIA,QAAA,CAAA;AAAA;AAAA,iBAKc,oBAAA,CAAA,GAAwB,qBAAqB;;;UC9M5C,wBAAA;EACf,SAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;AAAA;AAAA,iBAGoB,oBAAA,CACpB,SAAA,EAAW,gBAAA,GACV,OAAA,CAAQ,wBAAA;AAAA,iBAYW,mBAAA,CAAoB,SAAA,EAAW,gBAAA,GAAgB,OAAA;cAAA,wBAAA;;;;;;;;;UCpBpD,yBAAA;EACf,SAAA,IAAa,UAAA,QAAkB,oBAAA;EAC/B,SAAA,IAAa,UAAA,QAAkB,mBAAA;EAC/B,QAAA,CAAS,KAAA,WAAgB,OAAA;EACzB,SAAA,CAAU,KAAA,WAAgB,OAAA;EAC1B,cAAA,CAAe,WAAA,WAAsB,OAAA;AAAA;AAAA,iBAGvB,+BAAA,CACd,SAAA,EAAW,gBAAA,GACV,yBAAyB;;;UCXX,iBAAA;EACf,MAAA,CAAO,MAAA,EAAQ,wBAAA,GAA2B,OAAA,CAAQ,wBAAA;EAClD,MAAA,CACE,WAAA,UACA,KAAA,EAAO,OAAA,CAAQ,IAAA,CAAK,wBAAA,oBACnB,OAAA,CAAQ,wBAAA;EACX,SAAA,CAAU,KAAA,WAAgB,OAAA,CAAQ,wBAAA;AAAA;;;UCRnB,oBAAA;EACf,KAAA;EACA,eAAA;EACA,eAAA;EACA,SAAA;EACA,OAAA;AAAA;AAAA,UAGe,mBAAA;EACf,GAAA,CAAI,KAAA,UAAe,SAAA,UAAmB,GAAA,WAAc,OAAA,CAAQ,oBAAA;EAC5D,aAAA,CAAc,KAAA,UAAe,WAAA,WAAsB,OAAA,CAAQ,oBAAA;EAC3D,GAAA,CAAI,KAAA,WAAgB,OAAA,CAAQ,oBAAA;EAC5B,MAAA,CAAO,KAAA,WAAgB,OAAA;AAAA;;;UCVR,iBAAA;EACf,MAAA,CAAO,KAAA,UAAe,UAAA,EAAY,sBAAA,GAAyB,OAAA,CAAQ,kBAAA;EACnE,MAAA,CAAO,KAAA,UAAe,KAAA,EAAO,OAAA,CAAQ,sBAAA,IAA0B,OAAA,CAAQ,kBAAA;EACvE,UAAA,CAAW,KAAA,UAAe,OAAA,YAAmB,OAAA,CAAQ,kBAAA;EACrD,GAAA,CAAI,KAAA,WAAgB,OAAA,CAAQ,kBAAA;EAC5B,IAAA,IAAQ,OAAA,CAAQ,kBAAA;EAChB,MAAA,CAAO,KAAA,WAAgB,OAAA;AAAA;;;UCgLR,oBAAA;EACf,QAAA,EAAU,iBAAA;EACV,WAAA,EAAa,mBAAA;EACb,cAAA,EAAgB,iBAAA;AAAA;AAAA,iBAGF,0BAAA,CAA2B,MAAA,EAAQ,0BAAA,GAA6B,oBAAoB;;;iBC/JpF,sBAAA,CAAuB,OAAA,EAAS,uBAAA;EAC9C,OAAA,EAAS,gBAAA;EACT,QAAA,EAAU,wBAAA;AAAA"}
|