CN107784025A - 一种数据更新方法及装置 - Google Patents
一种数据更新方法及装置 Download PDFInfo
- Publication number
- CN107784025A CN107784025A CN201610792412.2A CN201610792412A CN107784025A CN 107784025 A CN107784025 A CN 107784025A CN 201610792412 A CN201610792412 A CN 201610792412A CN 107784025 A CN107784025 A CN 107784025A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- locally stored
- updated
- renewal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2372—Updates performed during offline database operations
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据更新方法及装置,涉及互联网技术领域,主要目的在于将媒体端更新成功的数据内容高效地在本地存储系统中进行更新操作,保证两端中的数据内容相一致。本发明主要的技术方案为:获取封装有待更新数据的第一消息;将第一消息中的待更新数据提交至媒体端;将媒体端更新数据的反馈结果与待更新数据封装为第二消息;根据操作许可指令将第二消息中的待更新数据提交至本地存储系统;当本地存储系统更新数据失败时,将本地存储系统反馈的失败结果与待更新数据封装为优先级高于第二消息的第三消息,以便优先处理该第三消息再次更新本地存储系统中的数据。本发明主要用于更新媒体端与本地存储系统中的数据内容。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据更新方法及装置。
背景技术
SEM(搜索引擎营销,Search Engine Marketing)的基本思想是让用户发现信息,并通过搜索点击进入网站/网页进一步了解他所需要的信息。SEM系统的作用是以最小的投入在搜索引擎中获得最大的访问量并产生对应的商业价值。SEM Dissector就是基于SEM并应用了数据挖掘和商业智能科技的搜索引擎关键词广告智能投放工具。SEM Dissector可以帮助SEM广告主、代理公司、账户操作人员省去大量机械、重复式的工作,同时提供更加全面、客观、通透的关键词广告绩效数据报表。SEM Dissector系统作为第三方的SEM离线系统,在用户对离线数据进行更新时,需要同时提交到媒体方和本地存储系统。而在这个过程中,由于媒体方与本地存储系统为两个不同存储平台,缺乏统一的事务性保障,因此,很难一次性完成两个异构系统的数据存储,从而导致媒体方数据和离线系统数据出现数据不一致的问题。例如,用户要提交一批待调价的关键词,在提交媒体阶段比较顺利,但是在向本地存储系统提交时,由于系统负载比较大,造成提交失败,此时离线数据和媒体方的数据就出现了不一致的情况。
为了避免媒体方数据和离线系统数据不一致的情况出现,目前所采用的方案一般是将离线数据提交至媒体方,再根据媒体方反馈的数据更新结果向本地存储系统提交离线数据,如果本地存储系统更新数据失败则通过同步程序重新同步数据,以保障数据的一致性。然而,该方式虽然可以解决数据不一致的问题,但是重新同步数据往往会因为数据排队等造成时间消耗较多,从而造成数据更新的效率低下。
发明内容
有鉴于此,本发明提供一种数据更新方法及装置,主要目的在于将媒体端更新成功的数据内容高效地在本地存储系统中进行更新操作,保证两端中的数据内容相一致。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供了一种数据更新方法,该方法包括:
获取封装有待更新数据的第一消息,并将所述第一消息添加至消息队列;
将第一消息中的待更新数据提交至媒体端,以便所述媒体端进行数据更新;
将媒体端更新数据的反馈结果与所述待更新数据封装为第二消息,并将所述第二消息添加至所述消息队列;
根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统,以便所述本地存储系统进行数据更新;
当所述本地存储系统更新数据失败时,将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息,并将所述第三消息添加至消息队列,以便优先处理所述第三消息再次更新所述本地存储系统中的数据。
优选的,根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统包括:
向本地存储系统申请数据更新的操作令牌,所述操作令牌为所述本地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令;
当获取所述操作令牌时,将所述第二消息中的待更新数据提交至本地存储系统。
优选的,在根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统之后,所述方法还包括:
在得到所述本地存储系统反馈的结果后,将所述操作令牌归还所述本地存储系统。
优选的,在将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息之后,所述方法还包括:
在所述第三消息中设置重试次数,所述重试次数为记录所述本地存储系统处理所述第三消息处理失败的次数;
将所述重试次数与消息队列的优先级相关联,使得重试次数越大的第三消息对应更高的优先级。
优选的,在所述第三消息中设置重试次数之后,所述方法还包括:
当所述重试次数达到预置值时,不再将所述第三消息添加至消息队列。
优选的,所述方法还包括:
更新所述消息队列中经过处理的所有消息的处理状态,以展示所述待更新数据中数据的当前更新状态。
另一方面,本发明还提供了一种数据更新装置,该装置包括:
获取单元,用于获取封装有待更新数据的第一消息,并将所述第一消息添加至消息队列;
第一提交单元,用于将所述获取单元获取的第一消息中的待更新数据提交至媒体端,以便所述媒体端进行数据更新;
第一生成单元,用于将媒体端更新数据的反馈结果与所述待更新数据封装为第二消息,并将所述第二消息添加至所述消息队列;
第二提交单元,用于根据操作许可指令将所述第一生成单元生成的第二消息中的待更新数据提交至本地存储系统,以便所述本地存储系统进行数据更新;
第二生成单元,用于当所述本地存储系统更新数据失败时,将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息,并将所述第三消息添加至消息队列,以便优先处理所述第三消息再次更新所述本地存储系统中的数据。
优选的,所述第二提交单元包括:
申请模块,用于向本地存储系统申请数据更新的操作令牌,所述操作令牌为所述本地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令;
提交模块,用于当获取到所述申请模块申请的操作令牌时,将所述第二消息中的待更新数据提交至本地存储系统。
优选的,所述装置还包括:
返还单元,用于在第二提交单元根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统并得到反馈的结果之后,将所述操作令牌归还所述本地存储系统。
优选的,所述第二生成单元包括:
设置模块,用于在所述第三消息中设置重试次数,所述重试次数为记录所述本地存储系统处理所述第三消息处理失败的次数;
关联模块,用于在所述设置模块设置重试次数之后,将所述重试次数与消息队列的优先级相关联,使得重试次数越大的第三消息对应更高的优先级。
优选的,所述第二生成单元还包括:
处理模块,用于当所述设置模块设置的重试次数达到预置值时,不再将所述第三消息添加至消息队列。
优选的,所述装置还包括:
更新单元,用于更新所述消息队列中经过处理的所有消息的处理状态,以展示所述待更新数据中数据的当前更新状态。
依据上述本发明所提出的一种数据更新方法及装置,通过将待更新的数据先发送至媒体端,由媒体端进行数据更新并反馈更新结果,再将媒体端更新成功的数据发送给具有操作许可指令的本地存储系统进行数据更新,对于更新失败的数据,系统将再次发送待更新数据至本地存储系统,同时提高本次更新操作的优先级,以提高本地存储系统更新该数据的效率。与现有的更新方式相比,本发明所采用的数据更新方式通过引入消息队列使得数据更新操作具有了优先处理等级,对于优先级高的更新失败操作能够反复多次地优先处理。同时,在向本地存储系统发送待更新数据时需要获得本地存储系统的操作许可指令,从而确定本地存储系统具有处理待更新数据的能力,以此避免本地存储系统由于负载问题导致的数据更新失败情况的发生。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种数据更新方法的流程图;
图2示出了本发明实施例提出的另一种数据更新方法的流程图;
图3示出了本发明实施例提出的一种数据更新装置的组成框图;
图4示出了本发明实施例提出的另一种数据更新装置的组成框图;
图5示出了本发明实施例中数据更新装置与媒体端和本地存储系统数据交互关系的示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据更新方法,如图1所示,该方法应用在客户端提交更新数据后,将该数据在媒体端与本地存储系统中进行数据更新,以保证两端数据内容的一致性,而在该数据更新的过程中,所依据的更新流程是先更新媒体端中的数据,在确定媒体端数据更新成功后再更新本地存储系统中的数据。具体步骤包括:
101、获取封装有待更新数据的第一消息,并将该第一消息添加至消息队列。
第一消息是由客户端将需要修改的数据进行封装得到的,其中的数据可以是单个数据,也可以是一组数据的集合。用户端对得到的第一消息会同时设置相关的属性信息,例如,操作唯一标识、数据库配置标识、操作类型、处理阶段类型等,并且定义该第一消息唯一的主题,该主题用于区分客户端的操作,例如,数据提交主题、数据查询主题等,以便于消息队列根据不同的主题将消息路由至订阅该主题的所有消息处理器中进行处理。
本发明实施例中所采用的消息队列的通信模式采用:发布/订阅模式,发布/订阅功能使消息的分发可以突破目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发,用户或应用程序可以根据主题或内容接收到所需要的消息。发布/订阅功能使得发送者和接收者之间的耦合关系变得更为松散,发送者不必关心接收者的目的地址,而接收者也不必关心消息的发送地址,而只是根据消息的主题进行消息的收发。
系统在得到客户端发送的第一消息后,会将该第一消息添加至消息队列中,由消息队列分发该第一消息至相应的消息处理器中。
102、将第一消息中的待更新数据提交至媒体端。
本步骤由系统中的媒体消息处理器执行,媒体消息处理器向消息队列订阅第一消息,具体实现过程为:媒体消息处理器向消息队列订阅所有数据提交主题的消息,同时,通过设置必要的过滤条件对属于该主题的消息进行进一步筛选,如将消息属性中的处理阶段类型作为过滤条件,定义该处理阶段类型为媒体的消息为媒体消息处理器所订阅的主题消息。
消息队列将符合媒体消息处理器订阅条件的主题消息,即第一消息,推送至媒体消息处理器。由媒体消息处理器提取第一消息中的待更新数据内容,并通过媒体端所开放的通讯接口将待更新数据发送至媒体端,由媒体端更新这些数据。媒体消息处理器在成功发送待更新数据后,会等待媒体端针对待更新数据的更新结果。
103、将媒体端更新数据的反馈结果与待更新数据封装为第二消息,并将该第二消息添加至消息队列。
媒体消息处理器通过媒体端所开放的通讯接口获取媒体端的更新结果,包括更新数据成功、更新数据失败。该更新结果是根据媒体端对更新数据的操作所得到的结果,由于媒体端一侧的操作具有不可控性,其对待更新数据的操作存在部分成功和部分失败的可能,因此,本发明实施例对于媒体端反馈的结果不进行分类处理,而是将成功结果或失败结果共同与待更新数据进行封装,得到第二消息。也就是说,媒体消息处理器对于媒体端反馈的更新结果并不做处理,只是将反馈结果与待更新数据封装为第二消息,并将第二消息添加至消息队列。由处理第二消息的消息处理器来根据其中的反馈结果做进一步的处理。相对于第一消息,第二消息中的内容增加了媒体端更新数据的反馈结果,并且其消息属性中的处理阶段类型也从媒体变更为本地存储系统。
104、根据操作许可指令将第二消息中的待更新数据提交至本地存储系统。
根据上述103步骤得到的第二消息中,由于可能存在不同媒体端更新结果,而对于其中的更新失败数据,则不需要在本地存储系统中进行更新。因此,在向本地存储系统提交待更新数据时,会一同将第二消息中的媒体端成功更新的反馈结果提交至本地存储系统,以便本地存储系统根据该反馈结果提取待更新数据中在媒体端更新成功的那部分数据进行更新操作。也就是说,在处理第二消息时,是根据其中的媒体端反馈结果来确定具体操作的,当反馈结果为全部成功时,就将该结果与更新数据提交至本地存储系统;当反馈结果为全部失败时,将不再向本地存储系统提交待更新数据;当反馈结果为部分成功与部分失败时,则是将更新成功的反馈结果与待更新数据提交给本地存储系统。
当消息队列中存在第二消息时,消息队列将向订阅第二消息的本地存储系统消息处理器中发布第二消息。其中,本地存储系统消息处理器与媒体消息处理器相类似,也是订阅所有数据提交主题的消息,但是,其订阅消息的处理阶段类型为本地存储系统,如此便可以在数据提交主题的消息中筛选出需要本地存储系统消息处理器进行处理的消息。
由于本地存储系统中保存有大量的数据内容,在系统进行数据分析过程中,其读写操作的负载也很大,在此过程中就会很容易出现提交的待更新数据更新失败的情况。为此,本发明实施例中,系统的本地存储系统消息处理器在处理第二消息之前,将询问本地存储系统当前的负载情况,当负载低于某一个阈值时,则认为本地存储系统具有处理数据更新的处理资源,此时再向本地存储系统发送待更新数据。与本地存储系统消息处理器的询问操作相对应的,本地存储系统会根据本地存储系统消息处理器的询问请求反馈一个操作指令,如操作许可指令或操作禁止指令。在本地存储系统消息处理器收到操作许可指令时,就将第二消息中的待更新数据通过数据层接口提交至本地存储系统,由本地存储系统进行数据的更新操作。
105、当本地存储系统更新数据失败时,将本地存储系统反馈的失败结果与待更新数据封装为优先级高于第二消息的第三消息,并将该第三消息添加至消息队列。
第三消息与第二消息的区别在于,第三消息中的内容多了本地存储系统反馈的失败结果,并且第三消息的优先级要高于第二消息。由于第二消息与第三消息都是由本地存储系统消息处理器所订阅处理的,因此,当消息队列中同时存在第二消息与第三消息时,消息队列将优先推送第三消息。此时消息队列中的第二消息并非上述已经处理过的第二消息,而是由其他客户端提交的待更新数据或者是同一客户端提交的其他待更新数据。至此,需要指出的,本发明实施例中所采用的消息队列还应支持不同优先级的消息处理能力。通过消息队列将优先级高的第三消息优先推送至本地存储系统消息处理器,使得该消息处理器具有优先处理本地存储系统更新数据失败的第三消息,并将第三消息中的待更新数据再次提交本地存储系统进行数据更新操作,以便尽快将待更新数据在本地存储系统中更新成功。
进而,当本地存储系统更新数据成功时,本地存储系统也会反馈一个更新成功的结果,而本地存储系统消息处理器也会将该成功结果与待更新数据封装为本地存储更新成功消息,并将该消息添加至消息队列。该消息将会被推送至客户端,告知客户端所提交的待更新数据在媒体端和本地存储系统中均成功更新。
结合上述的实现方式可以看出,本发明实施例所采用的数据更新方法,通过将待更新的数据先发送至媒体端,由媒体端进行数据更新并反馈更新结果,再将媒体端更新成功的数据发送给具有操作许可指令的本地存储系统进行数据更新,对于更新失败的数据,系统将再次发送待更新数据值本地存储系统,同时提高本次更新操作的优先级,来提高本地存储系统更新该数据的效率。与现有的更新方式相比,本发明实施例所采用的数据更新方式通过引入消息队列使得数据更新操作具有了优先处理等级,对于优先级高的更新失败操作能够反复多次地优先处理。同时,在向本地存储系统发送待更新数据时需要获得本地存储系统的操作许可指令,从而确保本地存储系统具有处理待更新数据的能力,以此避免本地存储系统由于负载问题导致的数据更新失败情况的发生。
通过上述实施例的说明可见,该数据更新方法是基于不同优先级处理的消息队列进行的数据更新。为了更加详细地说明本发明提出的一种数据更新方法,尤其是解决在本地存储系统中更新数据失败的问题,基于上述实施例的内容,本发明实施例还提出了一种数据更新方法,该方法将着重说明更新本地存储系统时的数据更新过程,具体步骤如图2所示,包括:
201、获取消息队列中的第一消息,并将第一消息中的待更新数据提交至媒体端。
第一消息为客户端提交的封装有待更新数据的消息体,通过消息队列发布至订阅该第一消息的所有消息处理器中。本步骤的具体内容可参考上述实施例中的步骤101和102,此处不再赘述。
202、将媒体端更新数据的反馈结果与待更新数据封装为第二消息,并将该第二消息添加至消息队列。
在媒体端完成数据更新操作后,媒体消息处理器将媒体端的反馈结果与待更新数据共同封装为第二消息,添加至消息队列中。至此,客户端提交的待更新数据就完成了在媒体端的数据更新。
203、根据操作许可指令将第二消息中的待更新数据提交至本地存储系统。
本发明实施例中对于操作许可指令的具体实现是通过本地存储系统消息处理器向本地存储系统申请数据更新的操作令牌,该操作令牌为本地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令。也就是说,由本地存储系统消息处理器发送操作请求,由本地存储系统发放操作令牌,具体而言,本地存储系统会根据自身负载情况判断是否能够执行数据更新操作,当判断能够执行数据更新操作后,将会发放操作令牌;否则,将不发放操作令牌。只有获取到操作令牌时,才能够进行后续的数据更新操作,这样可以避免本地存储系统由于请求过多导致的负载过大。这里需要说明的是,操作令牌是针对具体的操作,即一个操作令牌只允许本地存储系统消息处理器发送一个消息中的待更新数据,因此,本地存储系统消息处理器在请求操作令牌时,也是针对第二消息中待更新数据所请求的。
只有在本地存储系统消息处理器获取到操作令牌时,才会将第二消息中的待更新数据提交至本地存储系统,并等待本地存储系统反馈该待更新数据的更新结果。在得到本地存储系统反馈的更新结果后,本地存储系统消息处理器将操作令牌归还本地存储系统。其中,更新结果包括数据更新成功或失败的结果,也就是说,操作令牌只允许进行一次数据更新操作,不论结果如何,在完成本次数据更新操作后本地存储系统消息处理器都需要归还操作令牌。
204、当本地存储系统更新数据失败时,将本地存储系统反馈的失败结果与待更新数据封装为优先级高于第二消息的第三消息,并将该第三消息添加至消息队列。
在封装第三消息时,由于第三消息具有高于第二消息的优先级,第三消息将被本地存储系统消息处理器优先处理,而当第三消息也未更新成功时,该第三消息将被反复执行,有可能落入死循环中。为了避免此种情况的出现,在封装第三消息时,在第三消息中设置重试次数,其值的初始值为0,每失败一次该重试次数累加1,直至更新成功后将该重试次数清零。同时,再设置一个重试次数的上限值,当第三消息中的重试次数达到该上限值时,本地存储系统消息处理器就将不再将该消息添加至消息队列中,并且可以进一步的发送报警信号,提示管理员或客户端第三消息无法成功在本地存储系统中进行更新。
需要说明的是,本发明实施例中使用的第一消息、第二消息、第三消息并不是针对某个具体消息的名称,而是一类消息的统称。比如,第一消息就是客户端封装待更新数据的消息,该消息由媒体消息处理器进行处理;第二消息则是由待更新数据与媒体端反馈的数据更新成功结果组合进行封装得到的消息,该消息由本地存储系统消息处理器进行处理;而第三消息则是由待更新数据与本地存储系统反馈的数据更新成功结果组合进行封装得到的消息,该消息同样由本地存储系统消息处理器进行处理。其中,尤其是第三消息,相同的待更新数据在本地存储系统中多次更新失败时,由每一次的失败结果与待更新数据组合进行封装得到消息都可以称为第三消息。
进一步的,根据消息队列的优先级处理规则,可以将第三消息的优先级与其中的重试次数相关联,重试次数越高其设置的优先级等级也就越高,从而可以进一步提高该消息被处理的进度。
此外,为了标记客户端提交的第一消息的处理状态,本发明实施例中将设置一个状态更新处理器,该处理器将用于更新消息队列中所有消息的处理状态,特别是对第二消息、第三消息这类经过处理的存在操作状态变更的消息,状态更新处理器将消息的更新状态保存至缓存中,以向客户端展示其提交的待更新数据当前的处理状态与处理进度。
这里需要说明的是,本发明实施例中的状态更新处理器除了能够向客户端提供待更新数据的处理进度外,还具有限制客户端反复提交相同数据的消息,以保证待更新数据在本地存储系统中的操作与媒体端相同。对于客户端反复提交第一消息的情况,一般多发生在第二消息中含有部分成功结果的操作后,此时,客户端通过状态更新处理器查询到待更新数据在媒体端有部分数据没有更新成功,很可能要再次提交含有相同待更新数据的第一消息至消息队列,而此时客户端第一次提交的第一消息已经生成第二消息交由本地存储系统处理,如果此时媒体端根据客户端第二次提交的第一消息来更新数据并且全部更新成功后,那么本地存储系统在处理完部分更新成功的消息后,将会造成本地存储系统与媒体端中的数据不一致。尽管这是较为极端的例子,但为了避免此种情况的发生,状态更新处理器将限定客户端在提交第一消息后,在得到该第一消息所对应的第二消息以及第三消息之前,即确定待更新数据在媒体端与本地存储系统中的更新结果之前,将禁止客户端就相同的待更新数据进行再次提交。
进一步的,作为对上述方法的实现,本发明实施例提供了一种数据更新装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置可用于数据更新维护服务器中,也可以用于分布式存储系统中的服务器中,如图3所示,该装置包括:
获取单元31,用于获取封装有待更新数据的第一消息,并将所述第一消息添加至消息队列;
第一提交单元32,用于将所述获取单元31获取的第一消息中的待更新数据提交至媒体端,以便所述媒体端进行数据更新;
第一生成单元33,用于将媒体端更新数据的反馈结果与所述待更新数据封装为第二消息,并将所述第二消息添加至所述消息队列;
第二提交单元34,用于根据操作许可指令将所述第一生成单元33生成的第二消息中的待更新数据提交至本地存储系统,以便所述本地存储系统进行数据更新;
第二生成单元35,用于当所述本地存储系统更新数据失败时,将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息,并将所述第三消息添加至消息队列,以便优先处理所述第三消息再次更新所述本地存储系统中的数据。
进一步的,如图4所示,所述第二提交单元34包括:
申请模块341,用于向本地存储系统申请数据更新的操作令牌,所述操作令牌为所述地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令;
提交模块342,用于当获取到所述申请模块341申请的操作令牌时,将所述第二消息中的待更新数据提交至本地存储系统。
进一步的,如图4所示,所述装置还包括:
返还单元36,用于在第二提交单元34根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统并得到反馈的结果之后,将所述操作令牌归还所述本地存储系统。
进一步的,如图4所示,所述第二生成单元35包括:
设置模块351,用于在所述第三消息中设置重试次数,所述重试次数为记录所述本地存储系统处理所述第三消息处理失败的次数;
关联模块352,用于在所述设置模块设置重试次数之后,将所述重试次数与消息队列的优先级相关联,使得重试次数越大的第三消息对应更高的优先级。
进一步的,如图4所示,所述第二生成单元35还包括:
处理模块353,用于当所述设置模块351设置的重试次数达到预置值时,不再将所述第三消息添加至消息队列。
进一步的,如图4所示,所述装置还包括:
更新单元37,用于更新所述消息队列中经过处理的所有消息的处理状态,以展示所述待更新数据中数据的当前更新状态。
进一步的,上述的数据更新装置在实际应用中,由于涉及到媒体端与本地存储系统,因此,本发明实施例针对数据更新装置与媒体端和本地存储系统的数据交互关系进行具体的解释说明,如图5所示,由数据更新装置51中的第一提交单元32将第一消息中的待更新数据提交至媒体端52,由媒体端52进行数据更新操作,并将数据更新操作的结果反馈给数据更新装置51中的第一生成单元33。由第一生成单元33生成第二消息,并通过第二提交单元34将第二消息发送至本地存储系统53,由本地存储系统53进行数据更新操作。将本地存储系统53的更新操作结果反馈至数据更新装置51,其中,对于跟新失败的操作结果,由数据更新装置51中的第二生成单元35进行进一步处理,生成优先级更高的第三消息,以便再次提交本地存储系统53进行数据更新操作。对于数据更新装置51中具体的操作流程可参考上述实施例的说明,此处不再赘述。
综上所述,本发明实施例所采用的数据更新方法及装置,通过将待更新的数据先发送至媒体端,由媒体端进行数据更新并反馈更新结果,再将媒体端更新成功的数据发送给具有操作许可指令的本地存储系统进行数据更新,对于更新失败的数据,系统将再次发送待更新数据至本地存储系统,同时提高本次更新操作的优先级,来提高本地存储系统更新该数据的效率。此外,通过累计同一数据更新失败的次数来限定该数据在本地存储系统中更新操作,避免同一数据反复更新失败导致系统陷入死循环而无法处理其他数据,从而提高整体数据更新的效率。与现有的更新方式相比,本发明实施例所采用的数据更新方式通过引入消息队列使得数据更新操作具有了优先处理等级,对于优先级高的更新失败操作能够反复多次地优先处理。同时,在向本地存储系统发送待更新数据时需要获得本地存储系统的操作许可指令,从而确定本地存储系统具有处理待更新数据的能力,以此避免本地存储系统由于负载问题导致的数据更新失败情况的发生。
所述数据更新装置包括处理器和存储器,上述获取单元、记录单元、存储单元和播放单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现简化数据更新器的播放,特别是针对在数据更新意外中断时的视频续播功能。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取封装有待更新数据的第一消息,并将第一消息添加至消息队列;将第一消息中的待更新数据提交至媒体端,以便媒体端进行数据更新;将媒体端更新数据的反馈结果与待更新数据封装为第二消息,并将第二消息添加至所述消息队列;根据操作许可指令将第二消息中的待更新数据提交至本地存储系统,以便本地存储系统进行数据更新;当本地存储系统更新数据失败时,将本地存储系统反馈的失败结果与待更新数据封装为优先级高于第二消息的第三消息,并将第三消息添加至消息队列,以便优先处理第三消息再次更新本地存储系统中的数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据更新方法,其特征在于,所述方法包括:
获取封装有待更新数据的第一消息,并将所述第一消息添加至消息队列;
将第一消息中的待更新数据提交至媒体端,以便所述媒体端进行数据更新;
将媒体端更新数据的反馈结果与所述待更新数据封装为第二消息,并将所述第二消息添加至所述消息队列;
根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统,以便所述本地存储系统进行数据更新;
当所述本地存储系统更新数据失败时,将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息,并将所述第三消息添加至消息队列,以便优先处理所述第三消息再次更新所述本地存储系统中的数据。
2.根据权利要求1所述的方法,其特征在于,根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统包括:
向本地存储系统申请数据更新的操作令牌,所述操作令牌为所述本地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令;
当获取所述操作令牌时,将所述第二消息中的待更新数据提交至本地存储系统。
3.根据权利要求2所述的方法,其特征在于,在根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统之后,所述方法还包括:
在得到所述本地存储系统反馈的结果后,将所述操作令牌归还所述本地存储系统。
4.根据权利要求1所述的方法,其特征在于,在将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息之后,所述方法还包括:
在所述第三消息中设置重试次数,所述重试次数为记录所述本地存储系统处理所述第三消息处理失败的次数;
将所述重试次数与消息队列的优先级相关联,使得重试次数越大的第三消息对应更高的优先级。
5.根据权利要求4所述的方法,其特征在于,在所述第三消息中设置重试次数之后,所述方法还包括:
当所述重试次数达到预置值时,不再将所述第三消息添加至消息队列。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
更新所述消息队列中经过处理的所有消息的处理状态,以展示所述待更新数据中数据的当前更新状态。
7.一种数据更新装置,其特征在于,所述装置包括:
获取单元,用于获取封装有待更新数据的第一消息,并将所述第一消息添加至消息队列;
第一提交单元,用于将所述获取单元获取的第一消息中的待更新数据提交至媒体端,以便所述媒体端进行数据更新;
第一生成单元,用于将媒体端更新数据的反馈结果与所述待更新数据封装为第二消息,并将所述第二消息添加至所述消息队列;
第二提交单元,用于根据操作许可指令将所述第一生成单元生成的第二消息中的待更新数据提交至本地存储系统,以便所述本地存储系统进行数据更新;
第二生成单元,用于当所述本地存储系统更新数据失败时,将所述本地存储系统反馈的失败结果与所述待更新数据封装为优先级高于第二消息的第三消息,并将所述第三消息添加至消息队列,以便优先处理所述第三消息再次更新所述本地存储系统中的数据。
8.根据权利要求7所述的装置,其特征在于,所述第二提交单元包括:
申请模块,用于向本地存储系统申请数据更新的操作令牌,所述操作令牌为所述本地存储系统根据自身负载情况判断能够执行数据更新操作的许可指令;
提交模块,用于当获取到所述申请模块申请的操作令牌时,将所述第二消息中的待更新数据提交至本地存储系统。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
返还单元,用于在第二提交单元根据操作许可指令将所述第二消息中的待更新数据提交至本地存储系统并得到反馈的结果之后,将所述操作令牌归还所述本地存储系统。
10.根据权利要求7所述的装置,其特征在于,所述第二生成单元包括:
设置模块,用于在所述第三消息中设置重试次数,所述重试次数为记录所述本地存储系统处理所述第三消息处理失败的次数;
关联模块,用于在所述设置模块设置重试次数之后,将所述重试次数与消息队列的优先级相关联,使得重试次数越大的第三消息对应更高的优先级。
11.根据权利要求10所述的装置,其特征在于,所述第二生成单元还包括:
处理模块,用于当所述设置模块设置的重试次数达到预置值时,不再将所述第三消息添加至消息队列。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
更新单元,用于更新所述消息队列中经过处理的所有消息的处理状态,以展示所述待更新数据中数据的当前更新状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792412.2A CN107784025A (zh) | 2016-08-31 | 2016-08-31 | 一种数据更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610792412.2A CN107784025A (zh) | 2016-08-31 | 2016-08-31 | 一种数据更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107784025A true CN107784025A (zh) | 2018-03-09 |
Family
ID=61451415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610792412.2A Pending CN107784025A (zh) | 2016-08-31 | 2016-08-31 | 一种数据更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107784025A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277316A (zh) * | 2019-12-27 | 2020-06-12 | 北京邮电大学 | 一种基于光突发交换网络的数据传输方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902473A (zh) * | 2010-07-22 | 2010-12-01 | 武汉中地数码科技有限公司 | 基于网格gis的数据同步更新实现方法 |
CN103870977A (zh) * | 2012-12-18 | 2014-06-18 | 风网科技(北京)有限公司 | 移动广告平台数据同步方法及其系统 |
US20150063112A1 (en) * | 2013-08-30 | 2015-03-05 | Futurewei Technologies Inc. | Dynamic priority queue mapping for qos routing in software defined networks |
CN104753769A (zh) * | 2015-03-24 | 2015-07-01 | 新余兴邦信息产业有限公司 | 用于消息队列下发消息的方法和消息下发装置 |
CN105095364A (zh) * | 2015-06-26 | 2015-11-25 | 车智互联(北京)科技有限公司 | 一种数据同步系统和方法 |
-
2016
- 2016-08-31 CN CN201610792412.2A patent/CN107784025A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902473A (zh) * | 2010-07-22 | 2010-12-01 | 武汉中地数码科技有限公司 | 基于网格gis的数据同步更新实现方法 |
CN103870977A (zh) * | 2012-12-18 | 2014-06-18 | 风网科技(北京)有限公司 | 移动广告平台数据同步方法及其系统 |
US20150063112A1 (en) * | 2013-08-30 | 2015-03-05 | Futurewei Technologies Inc. | Dynamic priority queue mapping for qos routing in software defined networks |
CN104753769A (zh) * | 2015-03-24 | 2015-07-01 | 新余兴邦信息产业有限公司 | 用于消息队列下发消息的方法和消息下发装置 |
CN105095364A (zh) * | 2015-06-26 | 2015-11-25 | 车智互联(北京)科技有限公司 | 一种数据同步系统和方法 |
Non-Patent Citations (1)
Title |
---|
中国土地勘测规划院: "《全国地籍管理学术研讨会论文集》", 30 September 2009 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111277316A (zh) * | 2019-12-27 | 2020-06-12 | 北京邮电大学 | 一种基于光突发交换网络的数据传输方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194552B1 (en) | Assisted visual programming for iterative message processing system | |
US11474673B1 (en) | Handling modifications in programming of an iterative message processing system | |
US11113353B1 (en) | Visual programming for iterative message processing system | |
CN108712488B (zh) | 一种基于区块链的数据处理方法、装置、区块链系统 | |
US11663176B2 (en) | Data field extraction model training for a data intake and query system | |
US10275281B2 (en) | Scheduling jobs for processing log files using a database system | |
US20180011739A1 (en) | Data factory platform and operating system | |
US20200192651A1 (en) | Deployment of software applications on server clusters | |
CN108737534B (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
US20200082398A1 (en) | Proof-of-Devotion Blockchain Consensus Algorithm | |
US9424075B1 (en) | Dynamic virtual partitioning for delayed queues | |
US20220121708A1 (en) | Dynamic data enrichment | |
US9195681B2 (en) | System, method and computer program product for transmitting a group of data elements | |
US8818938B2 (en) | System, method and computer program product for synchronizing entities within a system | |
US20120191714A1 (en) | Scalable user clustering based on set similarity | |
Chadha et al. | Towards federated learning using faas fabric | |
Mennes et al. | GRECO: A distributed genetic algorithm for reliable application placement in hybrid clouds | |
US11573971B1 (en) | Search and data analysis collaboration system | |
CN103366117B (zh) | 一种感染型病毒修复方法及系统 | |
US20120224482A1 (en) | Credit feedback system for parallel data flow control | |
US20230109530A1 (en) | Synchronous object placement for information lifecycle management | |
CN107403012A (zh) | 一种数据交换方法及装置 | |
CN107784025A (zh) | 一种数据更新方法及装置 | |
US20030182294A1 (en) | Method and apparatus for merging data graphs using data identity control | |
CN105988881B (zh) | 用于处理资源访问操作信息的方法与设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180309 |
|
RJ01 | Rejection of invention patent application after publication |