【技术实现步骤摘要】
基于表达式的分布式分级计算系统、电子设备及存储介质
[0001]本专利技术属于分布式分级计算领域,尤其涉及基于表达式的分布式分级计算系统、电子设备及存储介质。
技术介绍
[0002]通常表达式的计算有落地和不落地两种方案,不落地的方案存在明显的短板,需要在每次查询数据的时候对表达式进行实时计算,这种方案对接口性能影响会比较大,而且不能对表达式的值进行筛选和统计。
[0003]落地的方案传统方案的实现方式,是在数据创建或者改变时,通过同步或异步的接口去更新表达式的值,这些方案的痛点在于:第一,同步的接口效率比较低下会影响用户操作体验,异步的接口存在并发更新的问题,可能导致数据不一致;第二,普遍无法支持存量数据的运算,导致当计算公式发生变化后只能影响新的数据;即便是支持存量数据运算,对于运算效率和数据最终一致性,在海量数据下依然是非常大的挑战;而且大量数据可能会造成计算拥堵,导致需要实时计算的数据无法及时计算,影响用户业务;第三,数据的变更来源多种多样,包括但不限于用户直接从界面提交、通过API写入、通过导入工具直接入库,变更来源的多样性导致计算覆盖的难度极大提升。
技术实现思路
[0004]为解决上述技术问题,本专利技术提出一种基于表达式的分布式分级计算系统、电子设备及存储介质的技术方案,以解决上述技术问题。
[0005]本专利技术第一方面公开了一种基于表达式的分布式分级计算系统,所述系统包括:所述系统包括:表达式管理模块、业务数据模块、任务调度模块、计算预处理模块、消息聚合分发模块、计 ...
【技术保护点】
【技术特征摘要】
1.一种基于表达式的分布式分级计算系统,其特征在于,所述系统包括:表达式管理模块、业务数据模块、任务调度模块、计算预处理模块、消息聚合分发模块、计算模块、业务库、任务库以及消息库;所述业务库:一种数据库存储,结构化存储业务数据信息;所述任务库:一种数据库存储,结构化存储所述任务调度模块的计算任务的信息;所述消息库:一种数据库存储,结构化存储所述消息聚合分发模块的计算聚合消息;所述表达式管理模块:配置表达式规则,表达式配置完成以后向所述任务调度模块提交存量数据的全量的计算任务的请求,并把配置后的表达式规则发送给所述业务库;所述业务数据模块:维护业务数据,数据变更成功之后向所述计算预处理模块发送数据变更消息,并将变更后数据保存到所述业务库;所述任务调度模块:根据所述计算任务的请求,向所述消息聚合分发模块发送提交任务的第二计算消息CLMsg2和取消任务,向所述计算模块做任务回调;将计算任务的信息发送给所述任务库;所述计算预处理模块:接收业务数据模块发出的数据变更消息,根据数据变更前后数据解析表达式依赖关系,生成第一计算消息CLMsg1,并将所述第一计算消息CLMsg1发送至消息聚合分发模块;所述消息聚合分发模块:接收计算预处理模块发送的所述第一计算消息CLMsg1与任务调度模块发出的第二计算消息CLMsg2,将所述第一计算消息CLMsg1或所述第二计算消息CLMsg2聚合,得到计算聚合消息并存入消息库,定时查询消息库中的计算聚合消息并分发给计算模块;所述计算模块:接收消息聚合分发模块发出的计算聚合消息,计算表达式的值并保存至业务库,返回处理结果。2.根据权利要求1所述的一种基于表达式的分布式分级计算系统,其特征在于,所述业务数据信息包含:对象描述信息、字段描述信息以及对象实例信息;所述对象描述信息的具体内容包含:对象ID、对象名称以及字段列表;表达式规则属于字段描述信息,其具体内容包含:字段ID、字段名称、所属对象ID、字段类型、表达式的返回值类型以及表达式的计算公式;所述对象实例信息的具体内容包含:数据ID、所属对象ID、版本号以及各字段的值。3.根据权利要求2所述的一种基于表达式的分布式分级计算系统,其特征在于,所述数据变更消息包括:数据操作类型、数据ID、变更前数据以及变更后数据;所述维护业务数据,数据变更成功之后向所述计算预处理模块发送数据变更消息,并将变更后数据保存到所述业务库的方法包括:用户通过网页或终端提交操作业务数据的请求,请求的参数包含数据操作类型、数据ID、所属对象ID以及数据内容;根据所述数据ID和所属对象ID从业务库查询业务数据,将查询到的数据内容和请求的参数中的数据内容进行比较,生成变更前数据和变更后数据;根据所述请求的参数,按数据操作类型和数据ID将请求的参数中的变更后数据保存到业务库,并将数据的版本号加一;根据变更前后数据,生成数据变更消息,发送至计算预处理模块。
4.根据权利要求2所述的一种基于表达式的分布式分级计算系统,其特征在于,所述根据所述计算任务的请求,向所述消息聚合分发模块发送提交任务的第二计算消息CLMsg2的方法包括:接收表达式管理模块的计算任务的请求,生成计算任务Job1将其保存到任务库;存在一个或一组线程,定时轮训查询出任务状态为待处理的计算任务Job1,同时将任务状态设置为处理中;根据轮训到的计算任务Job1中的对象ID,从业务库分批查询数据ID,生成多条第二计算消息CLMsg2并发送至消息聚合分发模块;第二计算消息CLMsg2的消息体包含:任务ID、字段ID列表、所属对象ID以及数据ID;向所述计算模块做任务回调的方法包括:接收来自计算模块任务回调的请求,根据任务ID将任务库中的计算任务的计算状态更新为已完成。5.根据权利要求2所述的一种基于表达式的分布式分级计算系统,其特征在于,所述根据数据变更前后数据解析表达式依赖关系,生成第一计算消息CLMsg1,并将所述第一计算消息CLMsg1发送至消息聚合分发模...
【专利技术属性】
技术研发人员:周伟荣,王毅,赵琚,
申请(专利权)人:北京纷扬科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。