@pisell/pisellos 2.2.122 → 2.2.123
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/server/index.d.ts +57 -3
- package/dist/server/index.js +735 -190
- package/dist/server/modules/order/index.d.ts +25 -3
- package/dist/server/modules/order/index.js +282 -136
- package/lib/server/index.d.ts +57 -3
- package/lib/server/index.js +471 -33
- package/lib/server/modules/order/index.d.ts +25 -3
- package/lib/server/modules/order/index.js +105 -24
- package/package.json +1 -1
|
@@ -13,7 +13,8 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
13
13
|
private orderDataSource;
|
|
14
14
|
private pendingSyncMessages;
|
|
15
15
|
private syncTimer?;
|
|
16
|
-
private
|
|
16
|
+
private isProcessingSyncBatch;
|
|
17
|
+
private isIdlePhase;
|
|
17
18
|
private resourceIdIndex;
|
|
18
19
|
private logger;
|
|
19
20
|
private storage;
|
|
@@ -31,6 +32,7 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
31
32
|
* @param metadata 日志元数据
|
|
32
33
|
*/
|
|
33
34
|
private logError;
|
|
35
|
+
private getOrderSyncThrottleMs;
|
|
34
36
|
preload(): Promise<void>;
|
|
35
37
|
getOrders(): OrderData[];
|
|
36
38
|
getOrderById(id: OrderId): OrderData | undefined;
|
|
@@ -38,6 +40,10 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
38
40
|
getOrderByOrderId(orderId: OrderId): OrderData | undefined;
|
|
39
41
|
loadOrdersByServer(): Promise<OrderData[]>;
|
|
40
42
|
getOrdersByResourceId(resourceId: string | number): OrderData[];
|
|
43
|
+
/**
|
|
44
|
+
* 通过 SSE 按自定义 query 拉取订单(支持 select/with 精简字段)
|
|
45
|
+
*/
|
|
46
|
+
fetchOrdersBySSE(query?: Record<string, any>): Promise<OrderData[]>;
|
|
41
47
|
getRoutes(): RouteDefinition[];
|
|
42
48
|
destroy(): void;
|
|
43
49
|
private syncOrdersMap;
|
|
@@ -48,15 +54,31 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
48
54
|
*/
|
|
49
55
|
private initOrderDataSource;
|
|
50
56
|
/**
|
|
51
|
-
* 初始化 pubsub
|
|
57
|
+
* 初始化 pubsub 订阅,监听订单变更(纯订阅,不拉数据;全量 SSE 由 loadOrdersByServer 负责)
|
|
52
58
|
*/
|
|
53
59
|
private setupOrderSync;
|
|
54
60
|
/**
|
|
55
|
-
*
|
|
61
|
+
* 调度订单同步节流窗口(leading-edge throttle):
|
|
62
|
+
* - 空闲状态下收到的第一条消息立即触发批处理,无需等待;
|
|
63
|
+
* - 首条处理后进入冷却窗口,窗口期间的后续消息聚合,窗口结束后批量处理;
|
|
64
|
+
* - 若当前批处理执行中,则由批处理结束后决定是否开启下一轮窗口。
|
|
65
|
+
*/
|
|
66
|
+
private scheduleOrderSyncThrottle;
|
|
67
|
+
/**
|
|
68
|
+
* 执行一次节流批处理并在需要时续约下一轮窗口。
|
|
69
|
+
* 批处理完成且无后续消息时恢复空闲状态,下一条消息将立即触发。
|
|
70
|
+
*/
|
|
71
|
+
private flushOrderSyncMessagesByThrottle;
|
|
72
|
+
/**
|
|
73
|
+
* 处理节流窗口内聚合后的同步消息批次
|
|
56
74
|
*
|
|
57
75
|
* 后端统一发送 change 消息,不再区分新增/编辑/删除。
|
|
58
76
|
* - 单条(id/order_id):若携带 body/data 则直接 upsert 到本地
|
|
59
77
|
* - 批量(ids):通过 HTTP 按 ids 增量拉取,再 merge 到本地
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* // pending 队列中存在 8 条消息时,仅处理一次批次并统一 merge
|
|
81
|
+
* await this.processOrderSyncMessages()
|
|
60
82
|
*/
|
|
61
83
|
private processOrderSyncMessages;
|
|
62
84
|
/**
|