一种业务驱动计算方法及系统技术方案

技术编号:21034324 阅读:11 留言:0更新日期:2019-05-04 05:26
本发明专利技术公开了一种业务驱动计算方法及系统,方法包括:S1、根据业务逻辑增、删、改生产区业务数据表中的记录;S2、在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;S3、判断异步守候线程是否被占用,若未占用则启动数据计算程序对待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。本发明专利技术所提供的方法及系统,在系统业务功能操作时,通过异步守候线程统一调度数据同步计算程序,达到不影响系统性能前提下,保证系统的生产区和查询区数据准实时一致。

【技术实现步骤摘要】
一种业务驱动计算方法及系统
本专利技术涉及数据同步处理领域,具体涉及一种业务驱动计算方法及系统。
技术介绍
随着大数据技术深入发展,单纯的OLTP应用或OLAP应用都不能够满足管理系统的需要,为提升交易和查询两方面的体验,ERP系统数据库在逻辑上往往分为生产区和查询区,通过一种有效的方法保障生产库和查询库的数据一致性。但传统数据计算不能同时解决两个问题:一个是查询需要提前对数据进行必要的清洗、转换和汇总,同步实时性不高,往往需要数十秒以上;另一个是查询区数据完整性不能保障,比如主表同步了但明细表没有同步,影响用户查询体验。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种业务驱动计算方法及系统,通过该方法及系统能够在系统功能操作过程中异步驱动数据计算,达到不影响系统性能前提下,保证系统的生产区和查询区数据准实时一致。为实现上述目的,本专利技术采用的技术方案如下:一种业务驱动计算方法,包括:S1、根据业务逻辑增、删、改生产区业务数据表中的记录;S2、在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在所述业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;S3、判断所述异步守候线程是否被占用,若未占用则启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。进一步,如上所述的一种业务驱动计算方法,步骤S3中,启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理包括:A1、设置线程争用标识,占用所述异步守候线程;A2、循环处理所述业务操作日志表中的待处理任务队列数据;A3、当所有待处理任务队列数据处理完成后,本次数据同步结束,更新线程争用标识,解除线程被占用状态。进一步,如上所述的一种业务驱动计算方法,步骤A2包括:A21、更新所述业务操作日志表,设置当前待处理任务队列数据的处理状态为处理中,处理开始时间为当前时间;A22、根据业务数据ID,执行当前待处理任务队列数据从生产区到查询区的计算处理;A23、当前待处理任务队列数据计算处理完成后,再次更新所述业务操作日志表,设置处理状态为成功处理,处理结束时间为当前时间,重新执行步骤A21,循环执行A21-A23,直至所述业务操作日志表中的所有待处理任务队列数据处理完毕。进一步,如上所述的一种业务驱动计算方法,步骤S3之前,还包括:根据所述数据计算程序进行计算处理的时间复杂度以及所述业务操作日志表中待处理任务队列数据的数据量,设置所述异步守候线程合理占用的时间阈值,即设定阈值。进一步,如上所述的一种业务驱动计算方法,所述生产区为主数据库,所述查询区为从数据库。一种业务驱动计算系统,包括:第一记录模块,用于根据业务逻辑增、删、改生产区业务数据表中的记录;第二记录模块,用于在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在所述业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;计算处理模块,用于判断所述异步守候线程是否被占用,若未占用则启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。进一步,如上所述的一种业务驱动计算系统,所述计算处理模块包括:设置子模块,用于设置线程争用标识,占用所述异步守候线程;循环处理子模块,用于循环处理所述业务操作日志表中的待处理任务队列数据;更新子模块,用于当所有待处理任务队列数据处理完成后,本次数据同步结束,更新线程争用标识,解除线程被占用状态。进一步,如上所述的一种业务驱动计算系统,所述循环处理子模块具体用于:更新所述业务操作日志表,设置当前待处理任务队列数据的处理状态为处理中,处理开始时间为当前时间;根据业务数据ID,执行当前待处理任务队列数据从生产区到查询区的计算处理;当前待处理任务队列数据计算处理完成后,再次更新所述业务操作日志表,设置处理状态为成功处理,处理结束时间为当前时间。进一步,如上所述的一种业务驱动计算系统,还包括:阈值设置模块,用于根据所述数据计算程序进行计算处理的时间复杂度以及所述业务操作日志表中待处理任务队列数据的数据量,设置所述异步守候线程合理占用的时间阈值,即设定阈值。进一步,如上所述的一种业务驱动计算系统,所述生产区为主数据库,所述查询区为从数据库。本专利技术的有益效果在于:本专利技术所提供的方法及系统,在系统业务功能操作时,通过异步守候线程来统一调度数据同步计算程序,一方面所有的业务操作都会实时触发数据计算程序,另一方面,在系统高并发的场景下,确保只有一个线程在执行数据计算,避免系统资源被数据计算程序大量占用。附图说明图1为本专利技术实施例中提供的一种业务驱动计算方法的流程示意图;图2为本专利技术实施例中提供的一种业务驱动计算方法的分步骤流程示意图;图3为本专利技术实施例中提供的异步驱动数据同步框架图;图4为本专利技术实施例中提供的执行数据计算程序的流程示意图;图5为本专利技术实施例中提供的一种业务驱动计算系统的结构示意图。具体实施方式下面结合说明书附图与具体实施方式对本专利技术做进一步的详细说明。如图1所示,一种业务驱动计算方法,包括:S1、根据业务逻辑增、删、改生产区业务数据表中的记录;S2、在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;S3、判断异步守候线程是否被占用,若未占用则启动数据计算程序对待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。如图2所示,步骤S3中,启动数据计算程序对待处理任务队列数据进行从生产区到查询区的计算处理包括:A1、设置线程争用标识,占用异步守候线程;A2、循环处理业务操作日志表中的待处理任务队列数据;A3、当所有待处理任务队列数据处理完成后,本次数据同步结束,更新线程争用标识,解除线程被占用状态。步骤A2包括:A21、更新业务操作日志表,设置当前待处理任务队列数据的处理状态为处理中,处理开始时间为当前时间;A22、根据业务数据ID,执行当前待处理任务队列数据从生产区到查询区的计算处理;A23、当前待处理任务队列数据计算处理完成后,再次更新业务操作日志表,设置处理状态为成功处理,处理结束时间为当前时间,重新执行步骤A21,循环执行A21-A23,直至业务操作日志表中的所有待处理任务队列数据处理完毕。步骤S3之前,还包括:根据数据计算程序进行计算处理的时间复杂度以及业务操作日志表中待处理任务队列数据的数据量,设置异步守候线程合理占用的时间阈值,即设定阈值。生产区为主数据库,查询区为从数据库。图3提供一种业务驱动数据计算方法的异步驱动数据同步框架图,包括:步骤1写生产区业务数据。业务操作功能按业务逻辑增、删、改业务数据表中记录。步骤2写业务操作日志记录。在日志表中插入一条日志记录,日志记录包含业务数据唯一标识、处理状态等信息,日志表结构参见下表。步骤3执行数据计算程序,详细流程参见图4。步骤3.1守候线本文档来自技高网...

【技术保护点】
1.一种业务驱动计算方法,其特征在于,包括:S1、根据业务逻辑增、删、改生产区业务数据表中的记录;S2、在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在所述业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;S3、判断所述异步守候线程是否被占用,若未占用则启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。

【技术特征摘要】
1.一种业务驱动计算方法,其特征在于,包括:S1、根据业务逻辑增、删、改生产区业务数据表中的记录;S2、在业务数据确认变更点调用异步守候线程,写业务操作日志记录,在所述业务操作日志表中记录业务数据ID,并设置处理状态为未处理,形成待处理任务队列数据;S3、判断所述异步守候线程是否被占用,若未占用则启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理,若被占用则判断线程占用时间是否超过设定阈值,若超过则启动自修复程序,解除线程被占用状态。2.根据权利要求1所述的一种业务驱动计算方法,其特征在于,步骤S3中,启动数据计算程序对所述待处理任务队列数据进行从生产区到查询区的计算处理包括:A1、设置线程争用标识,占用所述异步守候线程;A2、循环处理所述业务操作日志表中的待处理任务队列数据;A3、当所有待处理任务队列数据处理完成后,本次数据同步结束,更新线程争用标识,解除线程被占用状态。3.根据权利要求2所述的一种业务驱动计算方法,其特征在于,步骤A2包括:A21、更新所述业务操作日志表,设置当前待处理任务队列数据的处理状态为处理中,处理开始时间为当前时间;A22、根据业务数据ID,执行当前待处理任务队列数据从生产区到查询区的计算处理;A23、当前待处理任务队列数据计算处理完成后,再次更新所述业务操作日志表,设置处理状态为成功处理,处理结束时间为当前时间,重新执行步骤A21,循环执行A21-A23,直至所述业务操作日志表中的所有待处理任务队列数据处理完毕。4.根据权利要求1所述的一种业务驱动计算方法,其特征在于,步骤S3之前,还包括:根据所述数据计算程序进行计算处理的时间复杂度以及所述业务操作日志表中待处理任务队列数据的数据量,设置所述异步守候线程合理占用的时间阈值,即设定阈值。5.根据权利要求1所述的一种业务驱动计算方法,其特...

【专利技术属性】
技术研发人员:王红涛陈国强刘春兰王昊高岩王长勇
申请(专利权)人:北京大数元科技发展有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1