| 12345678910111213141516171819202122232425262728293031323334353637 |
- -- 得卡 DECA 账号池 · 账号表
- -- 用途:把原来集中在单账号 token.json 的登录态,改为多账号入池、按任务取号、异常自动切号(方案见 HANDOFF.md 账号池章节)。
- -- 规范:自增 id 物理主键、phone 单独建唯一键、时间字段固定 gmt_create_time/gmt_modified_time(datetime)。
- -- 说明:一号一专属静态出口 IP(proxy_url),账号↔IP 永久绑定;status 三态 healthy/cooling/dead。
- CREATE TABLE IF NOT EXISTS `deca_account_record` (
- `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增主键',
- `phone` VARCHAR(20) NOT NULL COMMENT '登录手机号(业务唯一标识)',
- `password` VARCHAR(128) DEFAULT NULL COMMENT '登录密码(密码登录/离线补货用;线上默认不自动登录)',
- `country_code` VARCHAR(8) NOT NULL DEFAULT '86' COMMENT '国家区号',
- `uid` VARCHAR(64) DEFAULT NULL COMMENT '账号 uid(JWT 里的账号标识,抓到后回填)',
- `access_token` TEXT DEFAULT NULL COMMENT 'access token(续期后回写)',
- `refresh_token` TEXT DEFAULT NULL COMMENT 'refresh token(一次性轮换,续期成功即更新)',
- `token_exp` BIGINT DEFAULT NULL COMMENT 'access token 过期时间戳(秒,Unix)',
- `proxy_url` VARCHAR(255) DEFAULT NULL COMMENT '该号绑定的专属静态出口 IP/代理 URL(1 号 1 IP 永久绑定;必须静态独享,勿用隧道)',
- `status` VARCHAR(16) NOT NULL DEFAULT 'healthy' COMMENT '状态:healthy=可用 / cooling=软风控冷却中 / dead=登录态死了需人工补货',
- `fail_count` INT NOT NULL DEFAULT 0 COMMENT '连续失败计数(成功即清零)',
- `cooldown_until` DATETIME DEFAULT NULL COMMENT 'cooling 冷却截止时间(到期由巡检恢复 healthy)',
- `owner_tag` VARCHAR(64) DEFAULT NULL COMMENT '被哪个任务独占(如 buy_record:881226408 / team / onsale_alert)',
- `owner_pid` INT DEFAULT NULL COMMENT '占用进程 pid(配合 lease_until 判租约是否失效)',
- `lease_until` DATETIME DEFAULT NULL COMMENT '租约到期时间(进程崩溃后到期自动可被再租,不死占)',
- `last_used_at` DATETIME DEFAULT NULL COMMENT '最近被取用时间(取号做负载均衡按此升序)',
- `last_success_at` DATETIME DEFAULT NULL COMMENT '最近一次带 token 请求成功时间',
- `last_error` VARCHAR(255) DEFAULT NULL COMMENT '最近一次错误信息(排障用)',
- `gmt_create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `gmt_modified_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_phone` (`phone`),
- KEY `idx_status_used` (`status`, `last_used_at`) -- 取号:按 status 过滤 + last_used_at 升序做负载均衡
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='得卡 DECA 账号池:多账号登录态 + 专属 IP + 健康状态';
|