一种数据更新方法、装置、设备及可读存储介质与流程

文档序号:16007801发布日期:2018-11-20 20:17阅读:156来源:国知局

本发明涉及计算机应用技术领域,特别是涉及一种数据更新方法、装置、设备及可读存储介质。



背景技术:

用户在使用浏览器或其他应用时,通常希望看到的是存储系统中实时或最新数据,而不是每次都需要刷新才能获取最新的数据。

现有的,为了实现客户端自动更新实时数据,在业务逻辑层中的各个需要进行更新的业务采用定时器定时去请求并更新数据。但因页面太多或者业务太多,所以会创建很多个定时器。定时器的数量增多之后,会导致整个应用系统的性能下降,提高开发成本。

综上所述,如何有效地解决客户端应用的数据更新等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据更新方法、装置、设备及可读存储介质,以自动更新用户端数据。

为解决上述技术问题,本发明提供如下技术方案:

一种数据更新方法,包括:

按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求;

接收所述服务器发送的与所述数据更新请求对应的目标数据;

判断所述目标数据与所述缓存对象的缓存数据是否一致;

如果否,则利用所述目标数据对所述缓存对象的缓存数据进行更新,并向所述缓存对象对应的目标业务发送通知消息;其中,所述通知消息为通知所述目标业务读取并在相应的业务视图中显示更新后的缓存数据的消息。

优选地,所述按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求,包括:

当所述缓存对象为多个时,所述按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求集合;其中,所述数据更新请求集合包括至少一个所述缓存对象的缓存数据的请求。

优选地,所述按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求,包括:

获取配置信息,并利用所述配置信息创建缓存对象;

为所述缓存对象创建数据更新请求以及所述数据更新请求定时发送的时间周期;

按照所述时间周期向所述服务器定时发送所述数据更新请求。

优选地,在所述按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求之前,还包括:

剥离业务逻辑层和数据层的紧耦合关系,并将所述业务逻辑层监听或查询对象设置为缓存层。

优选地,还包括:

对所述缓存对象进行更新。

优选地,利用所述目标数据对所述缓存对象的数据进行更新,包括:

通过增加、删除、替换或修改的方式对所述缓存对象的缓存数据进行更新。

优选地,所述缓存对象为客户端中的web应用中的待更新对象。

一种数据更新装置,包括:

更新请求发送模块,用于按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求;

最新数据接收模块,用于接收所述服务器发送的与所述数据更新请求对应的目标数据;

判断模块,用于判断所述目标数据与所述缓存对象的缓存数据是否一致;

数据更新模块,用于当所述目标数据与所述缓存对象的缓存数据不一致时,利用所述目标数据对所述缓存对象的缓存数据进行更新,并向所述缓存对象对应的目标业务发送通知消息;其中,所述通知消息为通知所述目标业务读取并在相应的业务视图中显示更新后的缓存数据的消息。

一种数据更新设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述数据更新方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据更新方法的步骤。

应用本发明实施例所提供的方法,按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求。即可避免用户手动进行刷新。然后,接收服务器发送的与数据更新请求对应的目标数据,并判断目标数据与缓存对象的缓存数据是否一致,如果不一致,则利用目标数据对缓存对象的缓存数据进行更新,并向该缓存对象对应的目标业务发送通知信息,以便目标业务读取并在相应的业务视图中显示更新后的缓存数据。以此,便可在无需用户进行手动刷新,在客户端的业务视图中实时显示最新数据,提升用户体验。

另外,处于业务逻辑层中的目标业务(各个需要显示更新后数据的业务)无需定时向服务器发送数据更新请求,也无需判断是否在出现数据更新。目标业务仅等待通知消息的方式,便可在出现数据更新时,读取最新缓存数据并在业务视图中进行显示。即,无需在业务逻辑层创建大量的定时器,以及复杂的数据更新与否的判断逻辑的情况下,便可实现在业务视图中显示最新数据。相应地,还可将业务逻辑层与数据层进行解耦,进一步降低业务逻辑层的复杂性,简化开发流程,提升系统灵活性。

相应地,本发明实施例还提供了与上述数据更新方法相对应的数据更新装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种数据更新方法的实施流程图;

图2为本发明实施例中另一种数据更新方法的流程图;

图3为本发明实施例中一种web应用的客户端缓存管理实现架构示意图;

图4为本发明实施例中一种数据更新装置的结构示意图;

图5为本发明实施例中一种数据更新设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例中一种数据更新方法的流程图,该方法包括以下步骤:

S101、按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求。

该方法可用于对客户端缓存层进行管理的方式实现的发明目的。其中,客户端的缓存层如web缓存层。

在本发明实施例中,可以预先设置一个时间周期,对于时间周期的时长可以预先确定,也可以根据实际情况进行确定和调整,在此不做限定。

可以按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求。具体的,当达到预设时间周期时,定时向服务器发送数据更新请求。其中,缓存对象可以为客户端的各个应用中需要实时更新的数据对象,例如,在web界面或其他应用(如音乐软件、游戏等常见的应用)中某图片、文字、音频、视频信息。

S102、接收服务器发送的与数据更新请求对应的目标数据。

在服务器接收到数据更新请求之后,读取数据更新请求对应的目标数据,然后将读取到的目标数据发送至客户端的缓冲层。如此,客户端的缓存层便可以接收到服务器发送的与数据更新请求对应的目标数据。需要说明的是,在本发明实施例中,对于客户端与服务器之间的通信模式或通信所使用的通信协议并不做限定。

S103、判断目标数据与缓存对象的缓存数据是否一致。

考虑到在实际应用中,数据更新的频率可能小于按照时间周期定时发送数据更新请求的频率。为减少业务逻辑层中的业务执行不必要的数据更新操作,可以在获得目标数据之后,先确定是否要对缓存数据进行更新,然后再发生更新之后,再通知业务逻辑读取更新后的缓存数据。

接收到目标数据之后,判断目标数据和缓存数据是否一致时,可以基于缓存数据和目标数据的时间标签是否一致进行判断,或缓存数据与该目标数据的大小是否一致,或缓存数据与该目标数据的具体数据内容是否一致。如果一致,则表示即,在获得目标数据之后,可以先判断缓存对象中的缓存数据与目标数据是否一致。

当判断结果为是时,则表明缓存对象的目前不存在数据更新情况,无需对缓存对象对应的缓存数据进行更新,可无操作。当判断结果为否时,则表明缓存对象已经发生了变化,因而需要进行缓存数据更新,此时可以进入步骤S104,执行数据更新操作。

S104、利用目标数据对缓存对象的数据进行更新,并向缓存对象对应的目标业务发送通知消息。

其中,通知消息为通知目标业务读取并在相应的业务视图中显示更新后的缓存数据的消息。

利用目标数据对各个缓存对象的数据进行更新。具体的,即将缓存对象的缓存数据更新处理至与目标数据相一致。并在完成缓存数据的更新操作之后,向更新后的缓存对象对应的目标业务发送通知消息。即向业务逻辑层中的目标业务发送通知信息。该通知信息为通知更新后的缓存对象对应的目标业务读取并在相应的业务视图中显示最新数据的消息。其中,目标业务可以具体为某个指定应用中某个或某种数据更新业务。例如,目标业务可以为web应用中,更新首页的显示图片的业务,或某投票软件中,更新显示实时的排名数据的显示业务。

当目标业务收到通知消息之后,便可在读取缓存数据,并在业务视图中显示更新后的缓存数据。例如,当更新的缓存数据为图片时,此时便可在业务视图中显示更新后的图片。

应用本发明实施例所提供的方法,按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求。即可避免用户手动进行刷新。然后,接收服务器发送的与数据更新请求对应的目标数据,并判断目标数据与缓存对象的缓存数据是否一致,如果不一致,则利用目标数据对缓存对象的缓存数据进行更新,并向该缓存对象对应的目标业务发送通知信息,以便目标业务读取并在相应的业务视图中显示更新后的缓存数据。以此,便可在无需用户进行手动刷新,在客户端的业务视图中实时显示最新数据,提升用户体验。

另外,处于业务逻辑层中的目标业务(各个需要显示更新后数据的业务)无需定时向服务器发送数据更新请求,也无需判断是否在出现数据更新。目标业务仅等待通知消息的方式,便可在出现数据更新时,读取最新缓存数据并在业务视图中进行显示。即,无需在业务逻辑层创建大量的定时器,以及复杂的数据更新与否的判断逻辑的情况下,便可实现在业务视图中显示最新数据。相应地,还可将业务逻辑层与数据层进行解耦,进一步降低业务逻辑层的复杂性,简化开发流程,提升系统灵活性。

需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。

实施例二:

在本实施例中,还可以设置多个缓存对象,并在发送数据更新请求时,一次性发送多个缓存对象分别对应的数据更新请求。具体的,当缓存对象为多个时,上述实施例一中的步骤S101具体包括:

当缓存对象为多个时,按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求集合。

其中,数据更新请求集合包括至少一个缓存对象的缓存数据的请求。也就是说,在本发明实施例中还可以在发送数据更新请求时,将多个缓存对象分别对应的数据更新请求以集合的形式发送给服务器。以减少定时器的使用量,减少缓存层的资源占用。

在服务器接收到数据更新请求之后,读取数据更新请求集合中各个请求分别对应的目标数据,然后将读取到的目标数据进行封装或打包之后,一并发送至客户端的缓冲层。如此,客户端的缓存层便可以接收到服务器发送的与数据更新请求集合对应的目标数据集合。

接收到目标数据之后,当出现目标数据与对应的缓存数据不一致时,可以利用目标数据集合对各个缓存对象的数据进行更新。具体的,将各个缓存对象对应的缓存数据与目标数据集合中对应的目标数据进行比较,将缓存对象的缓存数据更新至与目标数据集合相统一。完成缓冲层的数据更新之后,向业务逻辑层中的目标业务发送通知信息。该通知信息为通知更新后的缓存对象对应的目标业务读取并在相应的业务视图中显示最新数据的消息。

实施例三:

为便于描述本发明实施例所提供的技术方案,下面以实时更新显示客户端中web应用中的数据消息为例,对本发明实施例进行详细说明。

具体的,即缓存对象为客户端中的web应用中的待更新对象。也就是说,在本实施例中,进行更新的缓存对象是web应用中待更新对象。其中,待更新对象可以为某指定网页中的图片、文字、音频或视频等信息。

请参考图2,图2为本发明实施例中另一种数据更新方法的流程图,该方法可以应用于客户端。该方法包括以下步骤:

S201、剥离业务逻辑层和数据层的紧耦合关系,并将业务逻辑层监听或查询对象设置为缓存层。

在本实施例中,因业务逻辑层可以利用缓存层实现数据的更新,可以将业务逻辑层与数据层的紧耦合关系进行剥离,以此来降低业务逻辑层的复杂度,简化业务逻辑层的开发流程。然后,可以将业务逻辑层监听或查询对象设置为缓存层。

S202、获取配置信息,并利用配置信息创建缓存对象。

需要说明的是,配置信息可以为数据更新频率较高的网页中对应的统一资源定位符(Uniform Resource Locator,URL),并利用配置信息创建缓存对象。为了简化操作,可以直接将统一资源定位符作为缓存对象。当然,在本发明其他实施例中,还可以使用其他标识符作为缓存对象。

优选地,因为不同的网页信息更新的时段不统一,需要实时更新的网页内容可能会随时间的变化而变化,因而,在实际应用时,可以对缓存对象进行更新。具体的,即根据当前数据更新的频率将更新频繁的网页中的待更新对象设置为缓存对象,以在网页中实时显示最新数据的目的。

S203、为缓存对象创建数据更新请求以及数据更新请求定时发送的时间周期。

创建或调整缓存对象之后,可以为该缓存对象创建数据更新请求,以及该数据更新请求定时发送的时间周期。具体的,可以将缓存对象对应的数据更新请求对应的时间周期与缓存对象的更新频率相匹配。例如,当缓存对象为待更新的某排名时,该排名更新周期为20秒/次时,可以将时间周期设置为20秒。

S204、按照时间周期向服务器定时发送缓存对象的数据更新请求。

需要说明的是,当时间周期和缓存对象以及对应的数据更新请求确定之后,可以在实际应用中,无需多次执行步骤S201至步骤S203的操作。即,可以仅在首次执行,或需要进行调整时执行步骤S201至步骤S203的操作,其他时段便可直接基于设置好的时间周期、缓存对象及对应的数据更新请求定时向服务器发送。需要说明是,当缓存对象为多个时,因将多个缓存对象的数据更新请求作为一个数据更新请求集合向服务器发送的,在同一个数据更新请求集合中,可以仅包括能够从同一个服务器中获取数据的数据更新请求。

S205、接收服务器发送的与数据更新请求对应的目标数据。

S206、判断目标数据与缓存对象的缓存数据是否一致。

如果不一致,则执行步骤S207的操作。

S207、通过增加、删除、替换或修改的方式对缓存对象的缓存数据进行更新,并向缓存对象对应的目标业务发送通知消息。

其中,通知消息为通知与更新后的缓存对象对应的目标业务读取并在相应的业务视图中显示最新数据的消息。

当发现缓存数据与目标数据不同的时候,可以对缓存数据进行增加、删除、替换或修改,使得缓存数据最终与目标数据相同,即完成缓存数据的更新。

在更新后向业务逻辑层中的目标业务发送读取最新数据的通知消息。具体的,可以向业务逻辑层中缓存对象对应的目标业务发送通知消息,以便目标业务读取并在相应的业务视图显示更新后的缓存数据。其中业务视图可以具体为客户端中的网页显示界面。

实施例四:

为便于本领域技术人员理解或实现本发明实施例所提供的技术方案,下面结合模块化本发明实施例所提供的技术方案后得到的通过对客户端的缓存进行管理,实现web应用实时显示最新数据的具体应用场景进行详细说明。

现有的web应用中,想要显示最新数据时,主要有两种方式:方式一,以用户输入的刷新请求为数据更新时机;方式二,通过大量定时器的方式进行定时更新。在方式一中,若用户不发出刷新请求,则不会更新,而另外一种需要大量定时器,会占用系统资源,并且加重开发难度。

请参考图3,图3为本发明实施例中一种web应用的客户端缓存管理实现架构示意图。在客户端,剥离业务逻辑层和数据层的紧耦合关系,增加缓存管理模块。其中,缓存管理模块还可细分三个子模块:查询和监听子模块:为客户端的业务逻辑层提供查询或监听的方式查询到缓存内的数据;内部缓存数据管理子模块:可通过配置决定需要缓存哪些对象,并提供缓存数据的创建、更新、删除的内部逻辑;数据获取和更新子模块:通过定时器定时去服务器(图3所示的服务端)请求需要缓存的对象。在服务器端,缓存管理与服务器中的接口层建立通信连接。具体实施过程如下:

(1)在客户端新增缓存管理模块。

(2)设置客户端业务逻辑层,使其从缓存管理模块获取数据。并在缓存管理模块中提供监听方法,使业务逻辑层可以监听到数据的变化。

(3)在缓存管理模块中可配置需要缓存的对象。

(4)在缓存管理模块中可对缓存对象进行创建,更新,删除的操作。

(5)在缓存管理模块中可请求服务器中相应的需要缓存的对象数据,并对缓存数据进行更新。

在客户端增加缓存管理模块,可使所有的业务模块都可以直接查询或者监听使用缓存中的数据,如果数据有变化则会立刻通知业务模块更新视图。以此保证数据更新的及时性。如此,不仅可以集中管理后台数据的实时性,又能将客户端的业务层和数据进行解耦,简化了开发步骤,缩短产品研发周期。

相应于上面的方法实施例,本发明实施例还提供了一种数据更新装置,下文描述的数据更新装置与上文描述的数据更新方法可相互对应参照。

参见图4所示,该装置包括以下模块:

更新请求发送模块101,用于按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求;

最新数据接收模块102,用于接收服务器发送的与数据更新请求对应的目标数据;

判断模块103,用于判断目标数据与缓存对象的缓存数据是否一致;

数据更新模块104,用于当目标数据与缓存对象的缓存数据不一致时,利用目标数据对缓存对象的缓存数据进行更新,并向缓存对象对应的目标业务发送通知消息;其中,通知消息为通知目标业务读取并在相应的业务视图中显示更新后的缓存数据的消息。

应用本发明实施例所提供的装置,按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求。即可避免用户手动进行刷新。然后,接收服务器发送的与数据更新请求对应的目标数据,并判断目标数据与缓存对象的缓存数据是否一致,如果不一致,则利用目标数据对缓存对象的缓存数据进行更新,并向该缓存对象对应的目标业务发送通知信息,以便目标业务读取并在相应的业务视图中显示更新后的缓存数据。以此,便可在无需用户进行手动刷新,在客户端的业务视图中实时显示最新数据,提升用户体验。

另外,处于业务逻辑层中的目标业务(各个需要显示更新后数据的业务)无需定时向服务器发送数据更新请求,也无需判断是否在出现数据更新。目标业务仅等待通知消息的方式,便可在出现数据更新时,读取最新缓存数据并在业务视图中进行显示。即,无需在业务逻辑层创建大量的定时器,以及复杂的数据更新与否的判断逻辑的情况下,便可实现在业务视图中显示最新数据。相应地,还可将业务逻辑层与数据层进行解耦,进一步降低业务逻辑层的复杂性,简化开发流程,提升系统灵活性。

在本发明的一种具体实施方式中,更新请求发送模块101,具体用于当缓存对象为多个时,按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求集合;其中,数据更新请求集合包括至少一个缓存对象的缓存数据的请求。

在本发明的一种具体实施方式中,更新请求发送模块101,具体用于获取配置信息,并利用配置信息创建缓存对象;数据更新请求为缓存对象创建数据更新请求以及数据更新请求定时发送的时间周期;按照时间周期向服务器定时发送数据更新请求。

在本发明的一种具体实施方式中,还包括:

数据架构调整模块,用于在按照预设时间周期向服务器定时发送预设缓存对象的数据更新请求之前,剥离业务逻辑层和数据层的紧耦合关系,并将业务逻辑层监听或查询对象设置为缓存层。

在本发明的一种具体实施方式中,还包括:

缓存对象管理模块,用于对缓存对象进行更新。

在本发明的一种具体实施方式中,数据更新模块104,具体用于通过增加、删除、替换或修改的方式对缓存对象的缓存数据进行更新。

在本发明的一种具体实施方式中,缓存对象为客户端中的web应用中的待更新对象。

相应于上面的方法实施例,本发明实施例还提供了一种数据更新设备,下文描述的一种数据更新设备与上文描述的一种数据更新方法可相互对应参照。

参见图5所示,该数据更新设备包括:

存储器D1,用于存储计算机程序;

处理器D2,用于执行计算机程序时实现上述方法实施例的数据更新方法的步骤。

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据更新方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据更新方法的步骤。

该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1