feat: 处理整数溢出并持久化无法处理的数据
- 更新 heartbeatProcessor.js 以处理所有数字溢出类型(int16、int32、int64)并使用二进制补码。 - 防止仅与数据相关的 PostgreSQL 失败抛出个别回退错误。 - 在 databaseManager.js 中添加 insertHeartbeatEventsErrors 方法以存储被拒绝的记录。 - 更新 heartbeatProcessor.js 中的 _emitRejectedRecord 方法,直接将所有无法处理的心跳数据写入 heartbeat_events_errors 数据库。 - 更新 openspec 规范以支持新的溢出和验证回退状态。 - 添加测试文件以验证大整数处理。
This commit is contained in:
37
docs/heartbeat_events_errors.sql
Normal file
37
docs/heartbeat_events_errors.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Navicat Premium Dump SQL
|
||||
|
||||
Source Server : FnOS 109
|
||||
Source Server Type : PostgreSQL
|
||||
Source Server Version : 150004 (150004)
|
||||
Source Host : 10.8.8.109:5433
|
||||
Source Catalog : log_platform
|
||||
Source Schema : heartbeat
|
||||
|
||||
Target Server Type : PostgreSQL
|
||||
Target Server Version : 150004 (150004)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 02/03/2026 09:36:55
|
||||
*/
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for heartbeat_events_errors
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS "heartbeat"."heartbeat_events_errors";
|
||||
CREATE TABLE "heartbeat"."heartbeat_events_errors" (
|
||||
"error_id" int4 NOT NULL DEFAULT nextval('"heartbeat".heartbeat_events_errors_error_id_seq'::regclass),
|
||||
"error_time" timestamp(6) DEFAULT now(),
|
||||
"hotel_id" int4,
|
||||
"room_id" int4,
|
||||
"original_data" jsonb,
|
||||
"error_code" text COLLATE "pg_catalog"."default",
|
||||
"error_message" text COLLATE "pg_catalog"."default"
|
||||
)
|
||||
;
|
||||
|
||||
-- ----------------------------
|
||||
-- Primary Key structure for table heartbeat_events_errors
|
||||
-- ----------------------------
|
||||
ALTER TABLE "heartbeat"."heartbeat_events_errors" ADD CONSTRAINT "heartbeat_events_errors_pkey" PRIMARY KEY ("error_id");
|
||||
Reference in New Issue
Block a user