@taicode/common-server 1.0.9 → 1.0.10
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/output/logger/logger.d.ts +33 -0
- package/output/logger/logger.d.ts.map +1 -0
- package/output/logger/logger.js +65 -0
- package/output/logger/logger.test.d.ts +2 -0
- package/output/logger/logger.test.d.ts.map +1 -0
- package/output/logger/logger.test.js +87 -0
- package/output/redis-queue/batch-redis-queue.d.ts +136 -0
- package/output/redis-queue/batch-redis-queue.d.ts.map +1 -0
- package/output/redis-queue/batch-redis-queue.js +580 -0
- package/output/redis-queue/batch-redis-queue.test.d.ts +2 -0
- package/output/redis-queue/batch-redis-queue.test.d.ts.map +1 -0
- package/output/redis-queue/batch-redis-queue.test.js +398 -0
- package/output/redis-queue/index.d.ts +5 -0
- package/output/redis-queue/index.d.ts.map +1 -0
- package/output/redis-queue/index.js +2 -0
- package/output/redis-queue/redis-queue.d.ts +128 -0
- package/output/redis-queue/redis-queue.d.ts.map +1 -0
- package/output/redis-queue/redis-queue.js +550 -0
- package/output/redis-queue/redis-queue.test.d.ts +2 -0
- package/output/redis-queue/redis-queue.test.d.ts.map +1 -0
- package/output/redis-queue/redis-queue.test.js +836 -0
- package/output/redis-queue/types.d.ts +61 -0
- package/output/redis-queue/types.d.ts.map +1 -0
- package/output/redis-queue/types.js +1 -0
- package/package.json +9 -4
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 任务状态
|
|
3
|
+
*/
|
|
4
|
+
export type Status = 'pending' | 'processing' | 'completed' | 'failed';
|
|
5
|
+
/**
|
|
6
|
+
* 任务数据类型,支持可选的 id 字段用于幂等性
|
|
7
|
+
*/
|
|
8
|
+
export type TaskData = Record<string, unknown> & {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* 任务数据结构
|
|
13
|
+
*/
|
|
14
|
+
export interface Task<T = TaskData> {
|
|
15
|
+
id: string;
|
|
16
|
+
type: string;
|
|
17
|
+
data: T;
|
|
18
|
+
status: Status;
|
|
19
|
+
retryCount: number;
|
|
20
|
+
maxRetries: number;
|
|
21
|
+
createdTime: string;
|
|
22
|
+
delayUntil?: number;
|
|
23
|
+
processingStartTime?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 队列统计信息
|
|
27
|
+
*/
|
|
28
|
+
export interface QueueStats {
|
|
29
|
+
failed: number;
|
|
30
|
+
pending: number;
|
|
31
|
+
completed: number;
|
|
32
|
+
processing: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 任务队列配置
|
|
36
|
+
*/
|
|
37
|
+
export interface TaskQueueConfig {
|
|
38
|
+
redisUrl: string;
|
|
39
|
+
queueKey: string;
|
|
40
|
+
maxRetries?: number;
|
|
41
|
+
concurrency?: number;
|
|
42
|
+
cleanupDelay?: number;
|
|
43
|
+
processingDelay?: number;
|
|
44
|
+
consumerInterval?: number;
|
|
45
|
+
processingTimeout?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 批量任务队列配置
|
|
49
|
+
*/
|
|
50
|
+
export interface BatchTaskQueueConfig extends TaskQueueConfig {
|
|
51
|
+
batchSize?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 任务处理器函数
|
|
55
|
+
*/
|
|
56
|
+
export type TaskHandler<T extends TaskData = TaskData> = (data: T) => Promise<import('@taicode/common-base').CatchResult<void, string>>;
|
|
57
|
+
/**
|
|
58
|
+
* 批量任务处理器函数
|
|
59
|
+
*/
|
|
60
|
+
export type BatchTaskHandler<T extends TaskData = TaskData> = (dataList: T[]) => Promise<import('@taicode/common-base').CatchResult<void, string>>;
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../source/redis-queue/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,GAAG,QAAQ;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAS,eAAe;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,sBAAsB,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AAEvI;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,sBAAsB,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taicode/common-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"author": "Alain",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"description": "",
|
|
@@ -28,11 +28,16 @@
|
|
|
28
28
|
"output"
|
|
29
29
|
],
|
|
30
30
|
"peerDependencies": {
|
|
31
|
-
"
|
|
31
|
+
"@taicode/common-base": "^1.7.0",
|
|
32
32
|
"fastify": "^5.5.0",
|
|
33
|
-
"
|
|
33
|
+
"redis": "^4.7.0",
|
|
34
|
+
"zod": "^4.1.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
|
-
"
|
|
37
|
+
"@types/node": "^22.10.2",
|
|
38
|
+
"fastify": "^5.5.0",
|
|
39
|
+
"redis": "^4.7.1",
|
|
40
|
+
"vitest": "^3.2.4",
|
|
41
|
+
"zod": "^4.1.0"
|
|
37
42
|
}
|
|
38
43
|
}
|