一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种离线数据处理方法及系统与流程

2022-06-25 03:02:34 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,特别是涉及一种离线数据处理方法及系统。


背景技术:

2.移动应用软件领域,有许多因信号不好所衍生出来的各种离线应用场景。离线应用可在无网络的情况下进行业务操作,并在联网后对完成移动端和服务端的数据提交或同步。
3.企业移动应用软件领域,业务较为复杂,使得在离线场景下,网络不稳或长时间离线后,数据同步容易引起各类的数据质量问题(例如:脏数据,数据丢失,业务数据的事务性),这在企业应用领域是无法容忍的。传统的移动应用,仅在业务简单的场景中支持离线能力。在复杂的业务场景中,多数企业应用软件选择放弃离线能力,来解决数据质量问题。也有部分企业移动应用软件采用纯手工或半手工的方式解决数据问题。但是,现有技术无法适应长时间离线后的数据处理困难的问题,采用纯手工或半手工的方式处理数据问题,处理效率低。


技术实现要素:

4.为解决以上现有技术问题,本发明提供一种离线数据处理方法及系统,解决复杂场景下的移动端,长时间离线后数据提交的数据质量问题,以及数据自动处理难度。
5.本发明第一方面提供一种离线数据处理方法,所述方法由服务端执行,所述方法包括:
6.分别获取第一移动端和第二移动端提交的若干业务事件数据及每一业务事件数据对应的离线状态下在移动端完成编辑的时间戳;
7.对于同一业务事件,通过时间戳升序的方式,对第一移动端提交的该业务事件对应的业务事件数据及第二移动端提交的该业务事件对应的业务事件数据进行排列,得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳。
8.进一步地,所述得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳之后,还包括:
9.将最终的业务事件数据与业务元信息进行对比,以校验最终的业务事件数据的准确性。
10.进一步地,所述得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳之后,还包括:
11.将所述最终的业务事件数据发送至所述第一移动端和所述第二移动端。
12.进一步地,所述得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳之后,还包括:
13.对所述最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时
间戳进行存储。
14.本发明第二方面提供一种离线数据处理系统,所述系统存储于服务端执行,所述系统包括:
15.离线数据获取模块,用于分别获取第一移动端和第二移动端提交的若干业务事件数据及每一业务事件数据对应的离线状态下在移动端完成编辑的时间戳;
16.离线数据同步模块,用于对于同一业务事件,通过时间戳升序的方式,对第一移动端提交的该业务事件对应的业务事件数据及第二移动端提交的该业务事件对应的业务事件数据进行排列,得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳。
17.进一步地,所述离线数据同步模块,还用于:
18.将最终的业务事件数据与业务元信息进行对比,以校验最终的业务事件数据的准确性。
19.进一步地,所述离线数据同步模块,还用于:
20.将所述最终的业务事件数据发送至所述第一移动端和所述第二移动端。
21.进一步地,所述的一种离线数据处理系统,还包括:离线数据存储模块,用于:
22.对所述最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳进行存储。
23.本发明第三方面提供一种电子装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面中任意一项所述的离线数据处理方法。
24.本发明第三方面提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述第一方面中任意一项所述的离线数据处理方法。
25.与现有技术相比,本发明实施例的有益效果在于:
26.本发明提供一种离线数据处理方法及系统,所述方法包括:分别获取第一移动端和第二移动端提交的若干业务事件数据及每一业务事件数据对应的离线状态下在移动端完成编辑的时间戳;对于同一业务事件,通过时间戳升序的方式,对第一移动端提交的该业务事件对应的业务事件数据及第二移动端提交的该业务事件对应的业务事件数据进行排列,得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳。本发明有效消除脏数据、数据丢失以及业务数据的事务性的问题,并降低了自动处理业务数据质量的难度,有效降低人工成本。
附图说明
27.为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1是本发明某一实施例提供的一种离线数据处理方法的流程图;
29.图2是本发明某一实施例提供的离线数据处理整体物理结构的示意图;
30.图3是本发明某一实施例提供的离线数据处理整体逻辑结构的示意图;
31.图4是本发明另一实施例提供的一种离线数据处理方法的流程图;
32.图5是本发明又一实施例提供的一种离线数据处理方法的流程图;
33.图6是本发明某一实施例提供的一种离线数据处理系统的装置图;
34.图7是本发明某一实施例提供的一种电子设备的结构图。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
37.应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
38.术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
39.术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
40.第一方面。
41.请参阅图1,本发明一实施例提供一种离线数据处理方法,所述方法由服务端执行,所述方法包括:
42.s10、分别获取第一移动端和第二移动端提交的若干业务事件数据及每一业务事件数据对应的离线状态下在移动端完成编辑的时间戳。
43.s20、对于同一业务事件,通过时间戳升序的方式,对第一移动端提交的该业务事件对应的业务事件数据及第二移动端提交的该业务事件对应的业务事件数据进行排列,得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳。
44.在本发明实施例的某一具体实施方式中,所述步骤s20之后,还包括:
45.将最终的业务事件数据与业务元信息进行对比,以校验最终的业务事件数据的准确性。
46.在本发明实施例的另一具体实施方式中,所述步骤s20之后,还包括:
47.将所述最终的业务事件数据发送至所述第一移动端和所述第二移动端。
48.在本发明实施例的又一具体实施方式中,所述步骤s20之后,还包括:
49.对所述最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳进行存储。
50.本发明提供的方法有效消除脏数据、数据丢失以及业务数据的事务性的问题,并降低了自动处理业务数据质量的难度,有效降低人工成本。
51.在本发明另一具体实施例中,如附图2所示,本方案主要由应用app和应用服务组
成;分别部署于手机和服务器;各端都有自己的数据库,手机端的数据库内嵌在应用app中。
52.(1)应用app:手机端应用,用于在手机端进行业务操作(包括离线业务),手机联网后将离线阶段的业务数据同步到服务器。
53.(2)应用服务:服务端应用,用于执行在线业务,同步离线业务的数据,并将数据存储到业务数据库。
54.(3)服务器上的业务数据库:用于存储最终的业务数据。
55.(4)业务元信息文件:用于存储业务定义,例如业务操作的顺序信息,用于数据提交到服务端时,进一步校验业务数据的事务性。
56.如附图3所示,本方案的逻辑结构:
57.(1)数据渲染模块:用于在手机app上渲染业务数据,包含对手机端自带的业务数据在离线环境下的数据展示,以及在线环境下对服务端的业务数据与移动端的业务数据的计算合并及展示。
58.(2)业务数据:存储离线业务操作产生的数据,提供给数据渲染模块在移动终端离线状态下展示。
59.(3)手机上的业务事件数据库:用于存储离线业务事件的过程,在数据提交到服务端时,可以此计算并模拟真实的业务操作。
60.(4)数据提交/同步模块:用于处理离线、在线环境下的数据提交策略,包含业务数据与业务事件数据的处理逻辑。
61.(5)数据校验模块:用于将提交上来的业务数据和业务事件数据,利用业务元信息进行比对,保证业务事务的顺序性和数据质量的逻辑。
62.(6)数据筛选模块:用于筛选新数据下发给移动端。
63.(7)业务元信息:用于预设数据校验的业务逻辑。
64.(8)数据存储模块:用于将最终的业务数据持久化保存到业务数据库中。
65.(9)业务数据:在服务端存储最终的业务数据,真实的业务数据是以此为准的。
66.如图4所示的流程:移动终端处于在线状态下的数据同步,移动终端断网或信号不好时处于离线状态时的数据展示与提交,以及再次联网在线后与服务端的数据交换和数据的存储。
67.示例业务场景描述:
68.有2个业务员拜访超市,使用手机app进行拜访信息填报,在本例中简化为仅上报产品a在超市的剩余库存数量。且假设在拜访的过程中,超市网络不好,手机均处于离线状态。
69.2个业务员的手机在线后,可以互相查看到对方的拜访结果。
70.本例以简单的业务逻辑来说明数据提交过程和的同步过程:从整体的业务的角度来看,超市的剩余库存数量是根据时间推移不断变化;2个业务员在手机离线的状态下,可能前后拜访过同一家超市;手机在线后,数据会按照时间顺序进行处理。
71.1)离线数据的同步。
72.在本例中,手机上的业务数据为产品a的剩余库存数量。
73.业务数据“超市库存剩余表”,如下:
74.超市名称库存数量数据状态
超市a100 75.其中数据状态有:o:已同步,m:修改,a:新增,d:删除;
76.o:已同步:表示该数据与服务器上的数据一致;
77.m:修改:表示该数据行在离线状态时被修改过;
78.a:新增:表示该数据行在离线状态时新增;
79.d:删除:表示该数据行在离线状态时被删除;
80.另外本方案有一个关键的特殊数据,“业务事件表”如下:
81.业务事件时间戳业务表名变化情况202108311606000超市库存剩余表[{f:库存数量,t:a,d:200}]
[0082]
其中变化情况字段中存储着业务的变化及表字段的变化,具体结构含义如下:
[0083]
f::变化的字段名;
[0084]
t:变化类型,与上面的数据状态相同;
[0085]
d:变化后的数据;
[0086]
假设两个业务员,去超市拜访前,手机处于在线状态,数据同步模块则会轮询数据同步。
[0087]
(1)数据同步模块检查业务数据中,数据状态为非“已同步”的,如下:
[0088]
超市名称库存数量数据状态超市a100m
[0089]
(2)数据同步模块向数据筛选模块请求要同步的业务数据表名(超市库存剩余表)。
[0090]
(3)数据筛选模块从服务端的业务数据表(超市库存剩余表)中,筛选出要同步的数据。
[0091]
(4)数据同步模块更新应用app中的数据。
[0092]
完成后,手机端的数据表如下。
[0093]“超市库存剩余表”:
[0094]
超市名称库存数量数据状态超市a200o
[0095]
同步过后的数据行的数据状态为o,标识真实场景下的库存数量为200。
[0096]“业务事件表”也需要进行相应的变化,如下:
[0097]
业务事件时间戳业务表名变化情况202108311606000超市库存剩余表[{f:库存数量,t:a,d:200}]202108311620000超市库存剩余表[{f:库存数量,t:o,d:200}]
[0098]
以上就完成了离线数据的同步过程,同样地其他业务员也是这个流程,只是在线和离线的时间不同,同步的数据可能有所不同,但同步完成后最终在app中的数据是一致的。
[0099]
2)离线数据的展示与提交。
[0100]
在业务员的手机离线后,数据渲染模块,依然可以通过手机上的数据库渲染数据。流程较为简单,本方案跳过,主要关注数据的提交;数据的提交与正常的数据提交不同,本
方案的提交,分为业务数据的写入和业务事件的写入。
[0101]
假设,业务员a的手机处于离线状态,并且在2021年8月31日下午5点10分,于超市a盘点了库存后,调整了库存数据量为50,则:
[0102]
(1)写入离线业务数据:
[0103]“超市库存剩余表”:
[0104]
超市名称库存数量数据状态超市a50m
[0105]
修改过后的数据行的数据状态为m。
[0106]
(2)写入业务事件数据:
[0107]“业务事件表”也需要进行相应的变化,如下:
[0108]
业务事件时间戳业务表名变化情况202108311606000超市库存剩余表[{f:库存数量,t:a,d:200}]202108311620000超市库存剩余表[{f:库存数量,t:o,d:200}]202108311710000超市库存剩余表[{f:库存数量,t:m,d:50}]
[0109]
3)离线数据的交换、保存:
[0110]
离线数据的交换,需要针对多个手机终端的数据进行比较。在本例中,有2个业务员会前后在超市盘点库存。
[0111]
(1)两个业务员的手机离线数据,及服务端的数据如下:
[0112]
业务员a:
[0113]“超市库存剩余表”:
[0114]
超市名称库存数量数据状态超市a50m
[0115]“业务事件表”:
[0116]
业务事件时间戳业务表名变化情况202108311606000超市库存剩余表[{f:库存数量,t:a,d:200}]202108311620000超市库存剩余表[{f:库存数量,t:o,d:200}]202108311710000超市库存剩余表[{f:库存数量,t:m,d:50}]
[0117]
业务员b:
[0118]“超市库存剩余表”:
[0119]
超市名称库存数量数据状态超市a80m
[0120]“业务事件表”:
[0121]
业务事件时间戳业务表名变化情况202108311606000超市库存剩余表[{f:库存数量,t:a,d:200}]202108311620000超市库存剩余表[{f:库存数量,t:o,d:200}]202108311712000超市库存剩余表[{f:库存数量,t:m,d:80}]
[0122]
如上数据可以看出,业务员a在17:10分进入超市a,盘点了库存为50。业务员b在17:12分再次进入超市,可能进行了补货,库存为80。
[0123]
服务端:
[0124]
在同步前,服务端的超市库存剩余表:
[0125]
超市名称库存数量提交时间超市a200202108311620000
[0126]
业务元信息,业务元信息保存的是该项业务的提交业务逻辑,由逻辑代码组成,伪代码如下:
[0127]
if新提交时间》历史提交时间;
[0128]
取消;
[0129]
else;
[0130]
保存数据。
[0131]
(2)同步时,数据校验模块会调用业务元信息的业务逻辑代码分析提交的数据与原数据,在本例中,业务逻辑为按照提交时间进行比较,若提交时间在上次提交之后则保存。
[0132]
假设业务员b先进入在线状态,则进入如图5所示的流程。
[0133]
a:获取业务元信息;
[0134]
b:比较数据,并确定最终的数据;
[0135]
c:保存数据;
[0136]
假设业务员a在业务员b之后在线,但是业务员a的数据提交时间为202108311710000在业务员b的提交时间202108311712000之前,因此数据校验模块判定业务员a的数据无效,应该以业务员b的为准。
[0137]
这样,整个数据交换和保存的流程就完成了,并最终保证了数据的一致性。
[0138]
本发明设计的离线数据处理方法,有效消除脏数据、数据丢失以及业务数据的事务性的问题;并降低了自动处理业务数据质量的难度,有效降低人工成本。
[0139]
第二方面。
[0140]
请参阅图6,本发明一实施例提供一种离线数据处理系统,所述系统存储于服务端执行,所述系统包括:
[0141]
离线数据获取模块10,用于分别获取第一移动端和第二移动端提交的若干业务事件数据及每一业务事件数据对应的离线状态下在移动端完成编辑的时间戳。
[0142]
离线数据同步模块20,用于对于同一业务事件,通过时间戳升序的方式,对第一移动端提交的该业务事件对应的业务事件数据及第二移动端提交的该业务事件对应的业务事件数据进行排列,得到该业务事件对应的最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳。
[0143]
在本发明实施例的某一具体实施方式中,所述离线数据同步模块20,还用于:
[0144]
将最终的业务事件数据与业务元信息进行对比,以校验最终的业务事件数据的准确性。
[0145]
在本发明实施例的另一具体实施方式中,所述离线数据同步模块20,还用于:
[0146]
将所述最终的业务事件数据发送至所述第一移动端和所述第二移动端。
[0147]
在本发明实施例的又一具体实施方式中,所述一种离线数据处理系统还包括:离线数据存储模块,用于:
[0148]
对所述最终的业务事件数据及所述业务事件数据对应的在移动端完成编辑的时间戳进行存储。
[0149]
本发明提供的系统有效消除脏数据、数据丢失以及业务数据的事务性的问题,并降低了自动处理业务数据质量的难度,有效降低人工成本。
[0150]
第三方面。
[0151]
本发明提供了一种电子设备,该电子设备包括:
[0152]
处理器、存储器和总线;
[0153]
所述总线,用于连接所述处理器和所述存储器;
[0154]
所述存储器,用于存储操作指令;
[0155]
所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本技术的第一方面所示的一种离线数据处理方法对应的操作。
[0156]
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本技术实施例的限定。
[0157]
处理器5001可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
[0158]
总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是pci总线或eisa总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0159]
存储器5003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0160]
存储器5003用于存储执行本技术方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。
[0161]
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。
[0162]
第四方面。
[0163]
本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本技术第一方面所示的一种离线数据处理方法。
[0164]
本技术的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献