CN114895971B - 一种数据加载方法、装置、终端设备及介质 - Google Patents

一种数据加载方法、装置、终端设备及介质 Download PDF

Info

Publication number
CN114895971B
CN114895971B CN202210290281.3A CN202210290281A CN114895971B CN 114895971 B CN114895971 B CN 114895971B CN 202210290281 A CN202210290281 A CN 202210290281A CN 114895971 B CN114895971 B CN 114895971B
Authority
CN
China
Prior art keywords
data
loading
cache
task
page
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.)
Active
Application number
CN202210290281.3A
Other languages
English (en)
Other versions
CN114895971A (zh
Inventor
聂海
郭尚锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Coocaa Network Technology Co Ltd
Original Assignee
Shenzhen Coocaa Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Coocaa Network Technology Co Ltd filed Critical Shenzhen Coocaa Network Technology Co Ltd
Priority to CN202210290281.3A priority Critical patent/CN114895971B/zh
Publication of CN114895971A publication Critical patent/CN114895971A/zh
Application granted granted Critical
Publication of CN114895971B publication Critical patent/CN114895971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据加载方法、装置、终端设备及介质。该方法包括:获取数据的各个加载请求,确定各个请求加载的数据位置区间,判断各个所述数据位置区间的数据是否为缓存数据;当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池;当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。

Description

一种数据加载方法、装置、终端设备及介质
技术领域
本发明适用于数据处理领域,尤其涉及一种数据加载方法、装置、终端设备及介质。
背景技术
随着在线视频技术的发展,越来越多的用户使用智能电视、智能移动终端等终端设备进行视频观看,对这些终端设备中数据加载的效率要求也越来越高;另一方面,用户利用终端设备加载大量数据的需求也越来越高。当用户通过在智能终端的数据搜索框中输入搜索关键词时,对于符合该关键词的数据,通常是对所有数据进行加载,在所有数据加载完之后再显示UI给用户。这种数据加载方法,在数据量比较小的情况下是可以实现的,但是在极大数据量的情况下,比如,几万集的咨询内容,几十万条的用户数据等,会出现数据加载时间太长的问题,不能满足用户的需求。
因此,需要一种满足任意数据量大小的高效率数据加载方法,以实现从大量数据中的任意起始位置获取任意大小数据量。
发明内容
有鉴于此,本发明实施例提供了一种数据加载方法、装置、终端设备及介质,以解决现有数据加载方法的数据加载效率低、无法满足客户需求的问题。
第一方面,提供一种数据加载方法,所述数据加载方法包括:
获取数据的各个加载请求,确定各个请求加载的数据位置区间[S1,S2],S1 为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置;
判断各个所述数据位置区间的数据是否为缓存数据;
当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池;
当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
上述技术方案的有益效果是:
本发明的数据加载方法,通过将各组待加载的数据进行是否为缓存数据的判断,根据判断的结果进行处理,即当判断出某一组数据位置区间的数据是非缓存数据时,就将采用分页处理的非缓存数据的任务推送到用户任务队列中,由加载线程池根据用户队列中的任务,对每页的非缓存数据进行快速加载,当非缓存数据所属页码范围内的全部页码数据加载完成后,在用户任务队列中移除相应任务即可,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。
可选的,在将所述非缓存数据的加载请求推送至加载线程池后,还包括:按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级;按照所述优先级表示的加载次序,依次对各个页码的数据进行加载。
可选的,按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级包括:确定所述用户任务队列中所述非缓存数据的第一个任务对应的页面,将所述第一个任务对应的页面的数据加载任务的优先级设置为一级;确定所述非缓存数据的剩余任务对应的页面,将所述剩余任务对应的页面的数据加载任务的优先级设置为二级。
可选的,判断各个所述数据位置区间的数据是否为缓存数据后,还包括:当判定所述数据位置区间的数据为缓存数据时,将所述缓存数据的任务也推送至所述用户任务队列,按照各个加载请求的时间先后对用户任务队列中的各个任务进行排序;当所述缓存数据加载完成后,在所述用户任务队列中移除相应数据的任务。
可选的,所述用户任务队列中各个任务的属性信息包括:任务名称,所述数据位置区间的起始数据位置和终止数据位置,所述数据位置区间内的数据所属的页码范围,以及所述数据位置区间内的数据是否为缓存数据。
可选的,在判断各个所述数据位置区间的数据是否为缓存数据前,还包括:获取待缓存数据的总数,根据所述待缓存数据的总数,初始化数据列表;根据设定的页面尺寸,在所述数据列表中按页填充各个待缓存数据,得到若干页缓存数据。
可选的,得到所述若干页缓存数据后,确定每一页缓存数据的属性信息,所述属性信息包括:数据的页码,所述页码内的起始数据位置和终止数据位置,数据是否填充。
第二方面,提供一种数据加载装置,所述数据加载装置包括:
数据缓存管理器,用于获取数据的各个加载请求,确定各个请求加载的数据位置区间[S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置;判断各个所述数据位置区间的数据是否为缓存数据;当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池;
数据加载任务池,包括用户任务队列和加载线程池,所述用户任务队列用于存储各个所述数据位置区间的数据加载任务;所述加载线程池用于根据各个所述数据加载任务,对所述页码范围内各个页码的数据进行加载;
数据监听模块,用于监听所述加载线程池的返回结果,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
上述技术方案的有益效果是:
本发明的数据加载装置,采用三个模块即数据缓存管理器、数据加载任务池和数据监听模块进行相互配合,实现了第一方面的数据加载方法,解决现有数据加载方法的数据加载效率低、无法满足客户需求的问题,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。
第三方面,本发明实施例提供一种终端设备,所述终端设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的数据加载方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的数据加载方法。
上述两个个技术方案的有益效果是:
本发明的终端设备及计算机可读存储介质,通过将各组待加载的数据进行是否为缓存数据的判断,根据判断的结果进行处理,即当判断出某一组数据位置区间的数据是非缓存数据时,就将采用分页处理的非缓存数据的任务推送到用户任务队列中,由加载线程池根据用户队列中的任务,对每页的非缓存数据进行快速加载,当非缓存数据所属页码范围内的全部页码数据加载完成后,在用户任务队列中移除相应任务即可,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据加载方法的一应用环境示意图;
图2是本发明实施例一提供的一种数据加载方法的流程示意图;
图3是本发明实施例二提供的一种数据加载方法的流程示意图;
图4是本发明实施例三提供的一种数据加载方法的流程示意图;
图5是本发明实施例四提供的一种数据加载装置的结构示意图;
图6是本发明实施例四提供的数据缓存管理器、数据加载任务池中的用户任务队列、加载线程池示意图;
图7是本发明实施例五提供的一种终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本发明说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本发明说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
为了说明本发明的技术方案,下面通过具体实施例来进行说明。
本发明实施例一提供的一种数据加载方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer, UMPC)、上网本、云端终端设备、个人数字助理(personal digital assistant, PDA)等终端设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参见图2,是本发明实施例一提供的一种数据加载方法的流程示意图,上述数据加载方法可以应用于图1中的客户端,该数据加载方法可以包括以下步骤:
步骤S101,获取数据的各个加载请求,确定各个请求加载的数据位置区间 [S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置。
本步骤中,根据不同的用户需求,数据的加载请求可以是一个,也可以是多个,对于每一个用户输入的数据加载请求,都能确定唯一对应的数据位置区间。例如,一共有50000条数据,当检测到用户输入的起始数据位置为第0条数据,终止数据位置为第150条数据时,则确定S1为0,S2为150,该用户数据加载请求的数据位置区间为[0,150]。
步骤S102,判断各个所述数据位置区间的数据是否为缓存数据。
本步骤中,通过遍历搜索的方式,确定本地的数据缓存器中是否覆盖各个数据位置区间的所有数据,当数据缓存器中的缓存数据完全覆盖某一数据位置区间的所有数据时,该数据位置区间数据的判断结果为缓存数据;当数据缓存器中的缓存数据未完全覆盖某一数据位置区间的所有数据时,则该数据位置区间数据的判断结果为非缓存数据。
如果判断结果为非缓存数据,则执行步骤S103;如果判断结果为缓存数据,则执行步骤S105。
步骤S103,当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池。
本步骤中,根据数据位置区间的各个数据所在的页面,来确定非缓存数据所属的页码范围。举例说明:一共有50000条数据,按页划分得到300页数据,经过查询,可以确定数据位置区间[0,150]内所有数据的页面范围为第零页数据和第一页数据。
在确定非缓存数据的页码范围内后,通过用户任务队列用于存储各个所述数据位置区间的数据加载任务;通过加载线程池根据各个数据加载任务,对各组页码范围内各个页码的数据进行加载。其中,用户任务队列和加载线程池构成数据加载任务池,按照用户任务队列中的任务排序执行加载任务。
上述的用户任务队列中,各个任务的属性信息包括:
(a1)任务名称,用以表示执行任务的次序;
(a2)数据位置区间的起始数据位置和终止数据位置:用以表示用户请求的数据加载范围;
(a3)数据位置区间内数据所属的页码范围:用以表示待加载或待显示的数据页码;
(a4)数据位置区间内的数据是否为缓存数据:用以表示该数据的缓存情况。
上述的加载线程池中,包括各个页码数据的加载任务线程,每个加载任务线程的属性信息包括:加载任务线程名称、数据加载的请求页码。
举例说明:当第零页数据和第一页数据的任务推送至用户任务队列后,用户任务队列中该任务的属性信息为:第一条任务,起始数据位置为0,终止数据位置为150,页码范围为0-1页,数据为非缓存数据。对应加载线程池中加载任务线程的属性信息为:
第一条加载任务线程,数据加载的请求页码为0;
第二条加载任务线程,数据加载的请求页码为1。
步骤S104,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
本步骤中,通过对加载线程池进行监听,监听加载线程池的每次返回结果,来确定某组页码范围内所有页码的数据加载完成;然后,重新遍历用户任务队列,在所述用户任务队列中移除相应数据的任务。
步骤S105,当判定所述数据位置区间的数据为缓存数据时,将所述缓存数据的任务也推送至所述用户任务队列,按照各个加载请求的时间先后对用户任务队列中的各个任务进行排序。
举例说明:按照上述步骤S101,确定数据位置区间为[210,380];按照上述步骤S102,得到数据位置区间[210,380]的数据判断结果为缓存数据;那么经过本步骤,用户任务队列中对应任务的属性信息为:第二条任务,起始数据位置为210,终止数据位置为380,页码范围为2-3页,数据为缓存数据。
由于本步骤中数据位置区间的数据在数据缓存器中已经进行缓存,可以通过数据缓存器直接返回该缓存数据,不需要在加载线程池中重新加载。
步骤S106,当所述缓存数据加载完成后,在所述用户任务队列中移除相应数据的任务。
本步骤中,缓存数据加载完成后,重新遍历用户任务队列,在用户任务队列中移除相应数据的任务即可。
本实施例的数据加载方法,通过将各组待加载的数据进行是否为缓存数据的判断,根据判断的结果进行处理,即当判断出某一组数据位置区间的数据是非缓存数据时,就将采用分页处理的非缓存数据的任务推送到用户任务队列中,由加载线程池根据用户队列中的任务,对每页的非缓存数据进行快速加载,当非缓存数据所属页码范围内的全部页码数据加载完成后,在用户任务队列中移除相应任务即可,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。
参见图3,是本发明实施例二提供的一种数据加载方法的流程示意图,如图3所示,该数据加载方法可以包括以下步骤:
步骤S201,获取数据的各个加载请求,确定各个请求加载的数据位置区间 [S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置。
步骤S202,判断各个所述数据位置区间的数据是否为缓存数据。
步骤S203,当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池。
其中,步骤S201至步骤S203与上述步骤S101至步骤S103的内容相同,可参考步骤S101至步骤S103的描述,在此不再赘述。
步骤S204,按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级。
在一示例中,设置一级和二级两种优先级,该优先级的设置方法包括:
确定所述用户任务队列中所述非缓存数据的第一个任务对应的页面,将所述第一个任务对应的页面的数据加载任务的优先级设置为一级;
确定所述非缓存数据的剩余任务对应的页面,将所述剩余任务对应的页面的数据加载任务的优先级设置为二级。
设置好各个页码的数据加载任务的优先级之后,加载线程池中更新各个页码数据的加载任务线程的属性信息,每个加载任务线程的属性信息包括:加载任务线程名称、数据加载的请求页码、优先级。
举例说明:在确定数据位置区间[0,150]内的数据判断结果为非缓存数据,且根据用户任务队列中该任务的属性信息可知为第一条任务,则任务对应的页面的数据加载任务的优先级设置为一级,加载线程池中其他任务的优先级设置为二级。
步骤S205,按照所述优先级表示的加载次序,依次对各个页码的数据进行加载。
例如,当用户队列中第一条任务对应加载线程池中加载任务线程的属性信息为:第一条加载任务线程,数据加载的请求页码为0,优先级为一级;第二条加载任务线程,数据加载的请求页码为1,优先级为一级;用户队列中第二条任务对应的数据为缓存数据;用户队列中第三条任务对应加载线程池中加载任务线程的属性信息为:第三条加载任务线程,数据加载的请求页码为4,优先级为二级;第四条加载任务线程,数据加载的请求页码为5,优先级为二级。
在上述情况下,结合用户任务队列和优先级的顺序,先加载第一条任务对应的第一条加载任务线程,再加载第一条任务对应的第二条加载任务线程;再先后依次加载第三条任务的第三条加载任务线程和第四条加载任务线程。
步骤206,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
其中,步骤S206与上述实施例一中的步骤S104的内容相同,可参考步骤S104的描述,在此不再赘述。
本实施例的数据加载方法,通过在加载线程池中设置加载优先级,能够在执行数据加载过程时,不仅要按照用户任务队列中的顺序进行数据加载,还要结合预设的优先级对对每页的非缓存数据进行快速加载,并且加载线程池中各个页码的数据加载任务的优先级是可调的,能够优先保证特定用户的数据加载需求,进一步提高了数据加载效率。
参见图4,是本发明实施例三提供的一种数据加载方法的流程示意图,该数据加载方法可以包括以下步骤:
步骤S301,获取待缓存数据的总数,根据所述待缓存数据的总数,初始化数据列表。
本步骤中,通过调用预设的数据获取接口,确定待缓存数据的总数total,将待缓存数据的总数存入设置的数据总数表中,即初始化的一个包含total个数据的空列表,表中的每一个元素都是空元素。
步骤S302,根据设定的页面尺寸,在所述数据列表中按页填充各个待缓存数据,得到若干页缓存数据。
本步骤中,根据初始化时设置的页面尺寸按页插入数据,替换掉列表中对应位置的空元素值。在得到所述若干页缓存数据后,确定每一页缓存数据的属性信息,所述属性信息包括:数据的页码,所述页码内的起始数据位置和终止数据位置,数据是否填充。
步骤S303,获取数据的各个加载请求,确定各个请求加载的数据位置区间 [S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置。
步骤304,判断各个所述数据位置区间的数据是否为缓存数据。
步骤305,当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池。
步骤306,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
步骤S303至步骤S306与实施例一中的步骤S101至步骤S104的内容相同,可参考步骤S101至步骤S104的描述,在此不再赘述。
本实施例的数据加载方法,通过提前缓存好一部分数据,在判断各组待加载的数据进行是否为缓存数据,如果是缓存数据,则直接返回无需进行加载;如果是非缓存数据,则通过控制用户任务队列、加载线程池实现从数据任意起始位置获取任意大小数据量情况下的高效数据加载。
对应于上文实施例的方法,图5示出了本发明实施例四提供的数据加载装置的结构框图,上述数据加载装置应用于终端设备,终端设备可以为智能电视、智能手机,或者为其他智能移动终端。
参见图5,该数据加载装置主要包括:数据缓存管理器51、数据加载任务池52、数据监听模块53,其中:
数据缓存管理器51,用于获取数据的各个加载请求,确定各个请求加载的数据位置区间[S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置;判断各个所述数据位置区间的数据是否为缓存数据;当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池。
数据加载任务池52,包括用户任务队列和加载线程池,所述用户任务队列用于存储各个所述数据位置区间的数据加载任务;所述加载线程池用于根据各个所述数据加载任务,对所述页码范围内各个页码的数据进行加载。
数据监听模块53,用于监听所述加载线程池的返回结果,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
可选的是,上述数据加载装置还包括:优先级预设模块,用于按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级。
所述加载线程池用于按照所述优先级表示的加载次序,依次对各个页码的数据进行加载。
可选的是,上述优先级预设模块包括:
一级设置单元,用于确定所述用户任务队列中所述非缓存数据的第一个任务对应的页面,将所述第一个任务对应的页面的数据加载任务的优先级设置为一级。
二级设置单元,用于确定所述非缓存数据的剩余任务对应的页面,将所述剩余任务对应的页面的数据加载任务的优先级设置为二级。
可选的是,上述数据缓存管理器51还用于:
判断各个所述数据位置区间的数据是否为缓存数据后,当判定所述数据位置区间的数据为缓存数据时,将所述缓存数据的任务也推送至所述用户任务队列,按照各个加载请求的时间先后对用户任务队列中的各个任务进行排序;当所述缓存数据加载完成后,在所述用户任务队列中移除相应数据的任务。
可选的是,所述用户任务队列中各个任务的属性信息包括:任务名称,所述数据位置区间的起始数据位置和终止数据位置,所述数据位置区间内的数据所属的页码范围,以及所述数据位置区间内的数据是否为缓存数据。
可选的是,上述数据缓存管理器51还用于:
获取待缓存数据的总数,根据所述待缓存数据的总数,初始化数据列表根据设定的页面尺寸,在所述数据列表中按页填充各个待缓存数据,得到若干页缓存数据。
可选的是,上述数据缓存管理器51还用于:
在得到所述若干页缓存数据后,确定每一页缓存数据的属性信息,所述属性信息包括:数据的页码,所述页码内的起始数据位置和终止数据位置,数据是否填充。
本实施例的数据加载装置,主要通过数据缓存管理器实现了对数据加载任务池的管理,其中,数据缓存管理器中存储的缓存数据,与数据加载任务池中的用户任务队列、加载线程池如图6所示。
下面举例说明数据缓存管理器的工作原理:
数据缓存管理器中预设有多个功能列表,包括list(原始数据表)、pagesize (数据页大小表)、filledpage(记录已经加载完的数据页码表)、erroredPage(记录请求失败的数据页码表)、totalCount(数据总数表)、parent(数据队列的唯一标识表)。
并且,数据缓存管理器通过三个数据管理接口实现数据管理,分别如下:
第一数据管理接口:void addPage(int pageIndex,List<V>addPageDatas,inttotalItemsCount)。
其中,void addPage表示数据插入接口,pageIndex为数据页索引, addPageDatas表示数据,totalItemsCount表示数据总数。
第二数据管理接口:List<V>get(int startIndex,int endIndex)。
其中,List<V>为数据获取接口,startIndex表示起始数据位置,endIndex 表示终止数据位置。
第三数据管理接口:boolean containsPage(int startIndex,int endIndex)。
其中,boolean containsPage表示的是判断区间[startIndex,endIndex]的数据是否为缓存数据的接口。数据缓存管理器通过任意区间[startIndex,endIndex]来获取缓存中的数据,先根据startIndex和endIndex计算出本次加载请求的数据所在的具体页,如果缓存中的有效数据完全覆盖了这些页码,则返回完整的数据,如果没有足够的数据,则返回null。
本实施例的数据加载装置,采用三个模块即数据缓存管理器、数据加载任务池和数据监听模块进行相互配合,实现了第一方面的数据加载方法,解决现有数据加载方法的数据加载效率低、无法满足客户需求的问题,实现从大量数据中的任意起始位置获取任意大小数据量情况下的高效数据加载,满足了用户的数据高效加载需求。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本发明涉及各方法的实施例基于同一构思,其具体功能及带来的技术效果,具体可参见各方法的实施例部分,此处不再赘述。
图7为本发明实施例五提供的一种终端设备的结构示意图。如图7所示,该实施例的终端设备包括:至少一个处理器(图7中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个健康预测方法实施例中的步骤。
该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图7仅仅是终端设备的举例,并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是终端设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是终端设备的硬盘,在另一些实施例中也可以是终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本发明实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据加载方法,其特征在于,所述数据加载方法包括:
获取数据的各个加载请求,确定各个请求加载的数据位置区间[S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置;
判断各个所述数据位置区间的数据是否为缓存数据;
当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池;
在将所述非缓存数据的加载请求推送至加载线程池后,还包括:
按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级;
按照所述优先级表示的加载次序,依次对各个页码的数据进行加载;
按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级包括:
确定所述用户任务队列中所述非缓存数据的第一个任务对应的页面,将所述第一个任务对应的页面的数据加载任务的优先级设置为一级;
确定所述非缓存数据的剩余任务对应的页面,将所述剩余任务对应的页面的数据加载任务的优先级设置为二级;
当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
2.根据权利要求1所述的数据加载方法,其特征在于,判断各个所述数据位置区间的数据是否为缓存数据后,还包括:
当判定所述数据位置区间的数据为缓存数据时,将所述缓存数据的任务也推送至所述用户任务队列,按照各个加载请求的时间先后对用户任务队列中的各个任务进行排序;
当所述缓存数据加载完成后,在所述用户任务队列中移除相应数据的任务。
3.根据权利要求1或2所述的数据加载方法,其特征在于,所述用户任务队列中各个任务的属性信息包括:任务名称,所述数据位置区间的起始数据位置和终止数据位置,所述数据位置区间内的数据所属的页码范围,以及所述数据位置区间内的数据是否为缓存数据。
4.根据权利要求1所述的数据加载方法,其特征在于,在判断各个所述数据位置区间的数据是否为缓存数据前,还包括:
获取待缓存数据的总数,根据所述待缓存数据的总数,初始化数据列表;
根据设定的页面尺寸,在所述数据列表中按页填充各个待缓存数据,得到若干页缓存数据。
5.根据权利要求4所述的数据加载方法,其特征在于,得到所述若干页缓存数据后,确定每一页缓存数据的属性信息,所述属性信息包括:数据的页码,所述页码内的起始数据位置和终止数据位置,数据是否填充。
6.一种数据加载装置,其特征在于,所述装置包括:
数据缓存管理器,用于获取数据的各个加载请求,确定各个请求加载的数据位置区间[S1,S2],S1为所述数据位置区间的起始数据位置,S2为所述数据位置区间的终止数据位置;
判断各个所述数据位置区间的数据是否为缓存数据;当判定所述数据位置区间的数据为非缓存数据时,确定所述非缓存数据所属的页码范围,将所述页码范围内的非缓存数据的任务推送至用户任务队列;将所述非缓存数据的加载请求推送至加载线程池;
数据加载任务池,包括用户任务队列和加载线程池,所述用户任务队列用于存储各个所述数据位置区间的数据加载任务;所述加载线程池用于根据各个所述数据加载任务,对所述页码范围内各个页码的数据进行加载;
所述数据加载装置还包括:
优先级预设模块,用于按照预设条件,在所述加载线程池中设置各个页码的数据加载任务的优先级;
所述加载线程池用于按照所述优先级表示的加载次序,依次对各个页码的数据进行加载;
所述优先级预设模块包括:
一级设置单元,用于确定所述用户任务队列中所述非缓存数据的第一个任务对应的页面,将所述第一个任务对应的页面的数据加载任务的优先级设置为一级;
二级设置单元,用于确定所述非缓存数据的剩余任务对应的页面,将所述剩余任务对应的页面的数据加载任务的优先级设置为二级;
数据监听模块,用于监听所述加载线程池的返回结果,当所述加载线程池中各个所述页码范围内所有页码的数据完成加载后,在所述用户任务队列中移除相应数据的任务。
7.一种终端设备,其特征在于,所述终端设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的数据加载方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据加载方法。
CN202210290281.3A 2022-03-23 2022-03-23 一种数据加载方法、装置、终端设备及介质 Active CN114895971B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210290281.3A CN114895971B (zh) 2022-03-23 2022-03-23 一种数据加载方法、装置、终端设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210290281.3A CN114895971B (zh) 2022-03-23 2022-03-23 一种数据加载方法、装置、终端设备及介质

Publications (2)

Publication Number Publication Date
CN114895971A CN114895971A (zh) 2022-08-12
CN114895971B true CN114895971B (zh) 2024-07-19

Family

ID=82714863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210290281.3A Active CN114895971B (zh) 2022-03-23 2022-03-23 一种数据加载方法、装置、终端设备及介质

Country Status (1)

Country Link
CN (1) CN114895971B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339508A (zh) * 2016-10-25 2017-01-18 电子科技大学 一种基于分页的web缓存方法
CN113918849A (zh) * 2021-10-11 2022-01-11 北京奇艺世纪科技有限公司 一种页面显示方法、装置、系统、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547754A (zh) * 2015-09-17 2017-03-29 中兴通讯股份有限公司 一种在分页模型中动态加载数据的方法及装置
CN105512227A (zh) * 2015-11-30 2016-04-20 用友优普信息技术有限公司 网页数据加载方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339508A (zh) * 2016-10-25 2017-01-18 电子科技大学 一种基于分页的web缓存方法
CN113918849A (zh) * 2021-10-11 2022-01-11 北京奇艺世纪科技有限公司 一种页面显示方法、装置、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN114895971A (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
CN109313642B (zh) 账单信息缓存方法、账单信息查询方法和终端设备
CN110704677B (zh) 一种节目推荐方法、装置、可读存储介质及终端设备
CN111104426B (zh) 一种数据查询方法及系统
CN112395322B (zh) 一种基于分级缓存的列表数据显示方法、装置及终端设备
CN112035529B (zh) 缓存方法、装置、电子设备及计算机可读存储介质
CN109472540B (zh) 业务处理方法和装置
CN111125569A (zh) 数据标识的生成方法及装置、电子设备及介质
CN113010116A (zh) 一种数据处理方法、装置、终端设备及可读存储介质
CN110222046B (zh) 列表数据的处理方法、装置、服务器和存储介质
CN112799763A (zh) 一种函数管理方法、管理装置、终端设备及可读存储介质
CN114895971B (zh) 一种数据加载方法、装置、终端设备及介质
CN112131257B (zh) 数据查询方法和装置
CN111680014B (zh) 共享文件的获取方法、装置、电子设备及存储介质
CN113419792A (zh) 一种事件处理方法、装置、终端设备和存储介质
CN113760876A (zh) 一种数据过滤方法和装置
CN113934692A (zh) 文件清理方法、装置、存储介质及设备
CN108984431B (zh) 用于清空过期缓存的方法和装置
CN111198900A (zh) 工业控制网络的数据缓存方法、装置、终端设备及介质
CN106528623B (zh) 一种搜索引擎加速方法及装置
CN111143293A (zh) 一种元数据获取方法、装置、设备及计算机可读存储介质
CN114513558B (zh) 用户请求的处理方法和装置
CN111831655B (zh) 一种数据处理的方法、装置、介质和电子设备
CN113792014B (zh) 一种核电站文件管理方法、装置、终端设备及存储介质
CN117478743A (zh) 平衡新鲜度和访问频率的数据缓存方法、装置、设备及介质
CN117668086A (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
GR01 Patent grant
GR01 Patent grant