wangguangyuan
|
57f652637f
|
fix(redis): 按分钟执行的间隔任务不再生成窗口外的策略 key
上一提交(移除 KEYS 全库扫描)把"清理窗口外策略 key"的动作从"每个执行时刻一次"提到
"每个任务一次"。但按分钟执行的间隔任务,其 exeTimes 由 getExecTimesByMinute 生成到
次日 00:00,会超出任务配置的 intervalEndTime:原先每次存 key 前的清理会把窗口外的 key
删掉(除最后一次外),提取到循环外之后这些窗口外的 key 会全部留存,导致调度器在配置
窗口之外仍然执行任务。
本提交在按分钟执行的循环内补上守卫:晚于 intervalEndTime 的时刻直接跳过,既不清理也不
生成策略 key,与"只保留 finalDate 之内的策略 key"的原意保持一致(按小时执行的 exeTimes
本来就以 intervalEndTime 为界,不受影响)。
|
2 weeks ago |
wangguangyuan
|
112da5cef1
|
fix(redis): 生产路径禁止使用 KEYS,改用 SCAN,修复 Redis 阻塞导致巡检服务不可用
现象:巡检服务(dliip-patrol)容器连续约 9 小时 unhealthy;Tomcat 200 个请求线程
全部阻塞在 Lettuce(AsyncCommand.await 无超时,永不失败),容器 CPU 在 2%~500% 间跳变,
健康检查(curl 127.0.0.1:9901,10s 超时)连续 284 次超时。
根因:inspect-job 定时调用 /exec/makeCurrentDayTask,该接口遍历所有启用任务,对每个
"间隔执行"任务的每个执行时刻调用一次 parseTaskToRedis,而 parseTaskToRedis 内部用
redisService.keys(TASK_CODE@taskCode@*) 做全库扫描来清理策略 key。于是一次调用会对
Redis 发起成百上千次 KEYS:Redis 单线程,单次 KEYS 约 13ms 且返回体巨大(实测输出
8MB/s,单个客户端连接积压 321 条回复 / 5.8MB 输出缓冲),KEYS 执行期间其它所有客户端
的命令全部排队,实测 Redis 响应延迟 avg 287ms / max 1365ms,进而导致上游业务请求堆积、
Tomcat 线程池被占满、健康检查排不上队而超时。
修复:
1. RedisService 新增 scan(pattern[, count]),基于 SCAN 游标分批读取,不阻塞其它客户端;
原 keys() 标记 @Deprecated 并注明生产环境禁用。
2. 全仓库 11 处 redisService.keys() 调用点改为 scan()。
3. PatrolTaskExecController:抽出 cleanTaskKeysAfter(),策略 key 清理由"每个执行时刻一次"
改为"每个任务一次",一次 makeCurrentDayTask 的 KEYS 次数从成百上千次降到与任务数同量级。
4. PatrolTaskController:批量删除任务时原为 N 个 taskId 扫描 N 次全库,改为只扫描一次。
影响面:仅改变"按 pattern 查找 key"的实现方式(KEYS→SCAN,语义等价;SCAN 可能重复返回
同一个 key,对删除/遍历场景无影响),未改动任何业务判定逻辑。
|
2 weeks ago |
yinhuaiwei
|
14ce490073
|
feat: 新增检修区域,包含检修区域的任务将不执行
|
4 months ago |
yinhuaiwei
|
25b246a011
|
feat: patrol_task表新增specified_alg字段,用于任务指定如纠偏等算法类型(可根据注释“任务指定算法类型”查看逻辑路径);去掉纠偏算法合并逻辑
|
5 months ago |
yinhuaiwei
|
4793c7cdbe
|
feat: 支持多设备联合任务下发;纠偏算法合并到其他算法展示
|
5 months ago |
htjcAdmin
|
19483a87a7
|
/*纠偏任务发现的智巡任务流程的问题:先发送61再发送41会有问题,颠倒一下两个指令的流程*/
|
10 months ago |
wangguangyuan
|
0ed9fccafe
|
钱塘江站定时任务开启关闭优化
|
10 months ago |
wangguangyuan
|
d06e0eb744
|
机器狗,无人机定时任务
|
11 months ago |
htjcAdmin
|
f27eb8fbd5
|
/*解决鲁能机器狗任务上报过程中出现的状态异常问题*/
|
1 year ago |
WangGuangYuan
|
41e69f99c5
|
定时任务优化小时,分钟,统一一天内的时间
|
1 year ago |
htjcAdmin
|
e0094f0f66
|
/*
1. ivs 跳转到预置位URI_PTZ_CONTROL日志完善;
2.
下发请求到大模型侧:删除redis的ANALYSE_REQUEST_ALG,不再使用这个键值。*/
|
1 year ago |
htjcAdmin
|
5d9379abb1
|
/*
1. 为灵州站红外接入做准备的一些修改;
2.
中兴ivs:code不符合channelCode#domainCode的编码标准,导致浏览视频流界面报500异常问题修改。
*/
|
1 year ago |
htjcAdmin
|
23b0433fcd
|
/*增加任务暂停、恢复、终止机制*/
|
1 year ago |
htjcAdmin
|
d089a7484e
|
/*修改任务立即执行,多个任务立即执行都是执行同一个任务问题*/
|
1 year ago |
htjcAdmin
|
9130ed1371
|
/*算法端进度功能开发*/
|
1 year ago |
htjcAdmin
|
2c2de24c83
|
/*
1.
智能巡视与远程算法之间的异步通信机制优化:由定时任务改为常驻内存任务方式,优化内存资源使用以及并发稳定性。
2. 修改巡视结果算法名称无法展示问题。
3. 开发远程算法进度功能。
*/
|
1 year ago |
wangguangyuan
|
3c4fe6c257
|
间隔执行 设置间隔结束时间结束任务
|
1 year ago |
wangguangyuan
|
673b21df6b
|
还原任务间隔执行按小时
|
1 year ago |
wangguangyuan
|
b983aa538a
|
任务间隔执行新增按分钟
|
1 year ago |
wangguangyuan
|
0bd13b10f8
|
定时任务修改
|
1 year ago |
wangguangyuan
|
2b3d32ada3
|
fix:巡视任务中涉及多个设备的点位时,执行任务时会分多个进度执行
|
1 year ago |
lijiuwei
|
7b22a79aef
|
执行任务时检测有相同任务在执行
|
1 year ago |
htjcAdmin
|
c59f99bca8
|
/*红外1800修改。*/
|
1 year ago |
lijiuwei
|
7561554c33
|
判断是否为手动执行区域
|
1 year ago |
lijiuwei
|
006366e8f2
|
优化TASK_CURRENT_CODE
|
1 year ago |
lijw
|
f85d5edaca
|
优化IMMEDIATELY_EXEC_TASK_TIME
|
1 year ago |
lijiuwei
|
52721e75ba
|
联合巡视任务报告修改还原
|
1 year ago |
lijiuwei
|
f330fb2b50
|
多任务执行优化
|
1 year ago |
lijiuwei
|
39fadbdc09
|
多任务执行优化
|
1 year ago |
WangGuangYuan
|
37c4d8990b
|
fix巡视任务终止报错
|
2 years ago |
lijiuwei
|
3a2b1d1582
|
inpect-main日志优化
|
2 years ago |
lijiuwei
|
dfb8188113
|
还原“redis key对应巡视任务”的修改,等系统稳定了再改
|
2 years ago |
WangGuangYuan
|
3bb0110905
|
fix武汉现场终止任务报错
|
2 years ago |
lijw
|
166ac31172
|
redis key对应巡视任务
|
2 years ago |
lijw
|
07e47c91ed
|
恢复redis设置任务执行中状态
|
2 years ago |
lijw
|
ef443844a0
|
redis key任务执行中状态60秒自动清除
|
2 years ago |
lijw
|
903f46b5a8
|
redis key任务执行中状态60秒自动清除
|
2 years ago |
htjcAdmin
|
895273ca2c
|
/*智能巡视高级版本代码初次提交。*/
|
2 years ago |