Skip to content

[feature]datamanager新增重算补算任务机制 #1745

Open
@kayinli

Description

@kayinli

feature相关背景与描述
当producer出现宕机或者因为选主间隔导致job缺失时,需要有补算机制;当job计算错误时,则需要重算。

解决方案描述
重算方案:

  1. producer每次发送一个job时都往task表里新增一条job信息,status为wait
  2. worker do policy时如果发生了error,更新job信息中的status字段为fail
  3. producer定时load status为fail的job,重新发送至消息队列,并更新status为wait,retryTime +1
  4. 如果worker do policy success,将job信息删除即可
  5. 重试2次依然为fail的job保留在表中,提供命令行触发重算机制,命令行重算时,producer只取retry time >=2且状态为fail的job

补算机制:

  1. producer在每次send job之后更新对应资源和时间维度的job最新时间
  2. producer启动时,另外启动一个补算go routine,从db里获取记录,计算是否需要补算,是的话生成缺失的job
  3. 为避免补算job过多,只自动补算24小时内数据
  4. 提供命令行补算

其他可行性方案分析

其他补充信息

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions