@clairejs/server 3.16.15 → 3.16.16
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
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { IQueryProvider } from "@clairejs/orm";
|
|
2
2
|
import { CustomJobInfo } from "./interfaces";
|
|
3
|
-
export declare abstract class AbstractJobRepository {
|
|
3
|
+
export declare abstract class AbstractJobRepository<T extends CustomJobInfo> {
|
|
4
4
|
/**
|
|
5
5
|
* Return all persisted jobs
|
|
6
6
|
*/
|
|
7
|
-
abstract getJobs(query: IQueryProvider): Promise<
|
|
7
|
+
abstract getJobs(query: IQueryProvider): Promise<T[]>;
|
|
8
8
|
/**
|
|
9
9
|
* Save the job info and return a unique id
|
|
10
10
|
* @param jobInfo The custom job info to save
|
|
11
11
|
*/
|
|
12
|
-
abstract saveJob(jobInfo:
|
|
12
|
+
abstract saveJob(jobInfo: T, query: IQueryProvider): Promise<string>;
|
|
13
13
|
/**
|
|
14
14
|
* Remove job info by id
|
|
15
|
-
* @param
|
|
15
|
+
* @param id Unique id of job
|
|
16
16
|
*/
|
|
17
|
-
abstract removeJobById(
|
|
17
|
+
abstract removeJobById(id: string, query: IQueryProvider): Promise<void>;
|
|
18
18
|
}
|
|
@@ -2,14 +2,14 @@ import { AbstractLogger, IInit } from "@clairejs/core";
|
|
|
2
2
|
import Redis from "ioredis";
|
|
3
3
|
import { AbstractDatabaseAdapter, ITransaction } from "@clairejs/orm";
|
|
4
4
|
import { AbstractJobScheduler } from "./AbstractJobScheduler";
|
|
5
|
-
import { JobInfo, ScheduledJob } from "./interfaces";
|
|
5
|
+
import { CustomJobInfo, JobInfo, ScheduledJob } from "./interfaces";
|
|
6
6
|
import { AbstractJobRepository } from "./AbstractJobRepository";
|
|
7
7
|
export declare class LocalJobScheduler extends AbstractJobScheduler implements IInit {
|
|
8
8
|
protected readonly logger: AbstractLogger;
|
|
9
9
|
protected readonly db: AbstractDatabaseAdapter;
|
|
10
10
|
protected readonly redisClient: Redis;
|
|
11
11
|
protected readonly subscribeClient: Redis;
|
|
12
|
-
protected readonly jobRepo: AbstractJobRepository
|
|
12
|
+
protected readonly jobRepo: AbstractJobRepository<CustomJobInfo>;
|
|
13
13
|
/**
|
|
14
14
|
* Redis lock key to select active scheduler
|
|
15
15
|
*/
|
|
@@ -35,7 +35,7 @@ export declare class LocalJobScheduler extends AbstractJobScheduler implements I
|
|
|
35
35
|
private isActive;
|
|
36
36
|
private notifyResolver;
|
|
37
37
|
private jobHolder;
|
|
38
|
-
constructor(logger: AbstractLogger, db: AbstractDatabaseAdapter, redisClient: Redis, subscribeClient: Redis, jobRepo: AbstractJobRepository
|
|
38
|
+
constructor(logger: AbstractLogger, db: AbstractDatabaseAdapter, redisClient: Redis, subscribeClient: Redis, jobRepo: AbstractJobRepository<CustomJobInfo>,
|
|
39
39
|
/**
|
|
40
40
|
* Redis lock key to select active scheduler
|
|
41
41
|
*/
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { Constructor } from "@clairejs/core";
|
|
1
|
+
import { AbstractModel, Constructor } from "@clairejs/core";
|
|
2
2
|
import { IQueryProvider } from "@clairejs/orm";
|
|
3
3
|
import { CustomJobInfo } from "./interfaces";
|
|
4
4
|
import { AbstractJobRepository } from "./AbstractJobRepository";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
removeJobById(jobId: string, query: IQueryProvider): Promise<void>;
|
|
5
|
+
export declare class DefaultJobRepository<T extends CustomJobInfo & AbstractModel> extends AbstractJobRepository<T> {
|
|
6
|
+
protected readonly model: Constructor<T>;
|
|
7
|
+
constructor(model: Constructor<T>);
|
|
8
|
+
getJobs(query: IQueryProvider): Promise<T[]>;
|
|
9
|
+
saveJob({ id, ...jobInfo }: T, query: IQueryProvider): Promise<string>;
|
|
10
|
+
removeJobById(id: string, query: IQueryProvider): Promise<void>;
|
|
12
11
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { pickData } from "@clairejs/core";
|
|
2
1
|
import { AbstractJobRepository } from "./AbstractJobRepository";
|
|
3
2
|
export class DefaultJobRepository extends AbstractJobRepository {
|
|
4
3
|
model;
|
|
@@ -8,7 +7,7 @@ export class DefaultJobRepository extends AbstractJobRepository {
|
|
|
8
7
|
}
|
|
9
8
|
async getJobs(query) {
|
|
10
9
|
const jobs = await query.use(this.model).getRecords();
|
|
11
|
-
return jobs
|
|
10
|
+
return jobs;
|
|
12
11
|
}
|
|
13
12
|
async saveJob({ id, ...jobInfo }, query) {
|
|
14
13
|
if (id) {
|
|
@@ -22,7 +21,7 @@ export class DefaultJobRepository extends AbstractJobRepository {
|
|
|
22
21
|
}
|
|
23
22
|
return id;
|
|
24
23
|
}
|
|
25
|
-
async removeJobById(
|
|
26
|
-
await query.use(this.model).deleteById(
|
|
24
|
+
async removeJobById(id, query) {
|
|
25
|
+
await query.use(this.model).deleteById(id);
|
|
27
26
|
}
|
|
28
27
|
}
|