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

一种数据采集方法、装置、设备及存储介质与流程

2022-02-22 20:16:27 来源:中国专利 TAG:


1.本发明实施例涉及计算机技术领域,尤其涉及一种数据采集方法、装置、设备及存储介质。


背景技术:

2.随着金融行业数字化的快速发展,商业银行的业务系统架构会变得越来越复杂,各类业务系统每天都会产生大量业务数据,充分挖掘和利用业务数据资产可为商业银行获取竞争优势。如何高效、及时、稳定的采集业务数据是商业银行充分利用数据资产创造业务价值的基础和前提。常规数据采集方式一般有两种方式:1.点对点的单一节点数据采集方式,服务器使用ha方式实现高可用;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.根据所述其他节点的状态信息更新所述签到表,将签到处理锁的状态信息更新为未占用状态。
29.进一步的,所述其他节点的签到信息包括:其他节点的上次签到时间、签到时间和缓冲时间;
30.相应的,根据所述其他节点的签到信息确定其他节点的状态信息,包括:
31.若所述其他节点的上次签到时间、所述签到间隔和所述缓冲时间之和小于当前系统时间,则确定其他节点的状态信息为下线状态,其中,所述缓冲时间等于签到时间的n倍,其中,n为正整数。
32.进一步的,将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,包括:
33.将所述目标任务提交到目标工作线程,其中,所述目标任务携带任务信息;
34.根据所述任务信息确定所述目标任务的阶段信息和目标参数;
35.根据所述目标任务的阶段信息和目标参数进行数据采集。
36.进一步的,根据所述目标任务的阶段信息和目标参数进行数据采集,包括:
37.若所述目标任务的阶段信息为数据抽取阶段,则根据数据抽取阶段对应的目标参数进行数据抽取,并将抽取到的数据插入临时表;
38.若所述目标任务的阶段信息为数据检查阶段,则根据数据检查阶段对应的目标参数进行数据检查;
39.若所述目标任务的阶段信息为数据入库阶段,则根据数据入库阶段对应的目标参数进行数据入库。
40.第二方面,本发明实施例还提供了一种数据采集装置,该装置包括:
41.获取模块,用于通过守护线程获取主线程状态信息;
42.初始化模块,用于若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;
43.采集模块,用于根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集。
44.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的数据采集方法。
45.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据采集方法。
46.本发明实施例通过守护线程获取主线程状态信息;若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,既解决了数据采集效率低,处理能力不可扩展,服务器故障恢复不够及时的问题,又解决了主节点为中心化节点,主节点服务器故障整个系统不可用,主节点容易成为处理效率的瓶颈的问题,能够根据各节点自身处理能力均衡负载到各节点,各节点并行处理数据采集任务,提升数据采集效率。
附图说明
47.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
48.图1是本发明实施例中的一种数据采集方法的流程图;
49.图1a是本发明实施例中的数据采集系统的示意图;
50.图1b是本发明实施例中的节点任务领取与处理调度的流程图;
51.图1c是本发明实施例中的节点状态维护方法的流程图;
52.图1d是本发明实施例中的另一种数据采集方法的流程图;
53.图2是本发明实施例中的一种数据采集装置的结构示意图;
54.图3是本发明实施例中的一种电子设备的结构示意图;
55.图4是本发明实施例中的一种包含计算机程序的计算机可读存储介质的结构示意图。
具体实施方式
56.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
57.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所
述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
58.本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
59.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
60.图1为本发明实施例提供的一种数据采集方法的流程图,本实施例可适用于数据采集的情况,该方法可以由本发明实施例中的数据采集装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
61.s110,通过守护线程获取主线程状态信息。
62.其中,所述主线程状态信息可以为开启状态,也可以为未开启状态,本发明实施例对此不进行限制。
63.具体的,当前节点通过守护线程定时检查主线程状态信息。
64.s120,若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池。
65.其中,通过主线程初始化工作线程的线程池的方式可以为:根据预先设定的最大线程数构建最大线程数对应的工作线程的线程池。
66.其中,所述工作线程的线程池中包括至少两个工作线程。
67.具体的,若通过守护线程获取主线程状态信息为开启状态,则根据预先设定的最大线程数构建最大线程数对应的工作线程的线程池。
68.s130,根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集。
69.其中,所述节点信息为当前节点信息,所述节点信息的获取方式可以为获取当前节点在签到表中的状态,所述节点信息可以为上线状态,也可以为未上线状态,本发明实施例对此不进行限制。
70.其中,通过主线程领取目标任务的方式可以为:若节点信息为上线状态,则根据处于运行状态的目标工作线程的第二数据和线程池中工作线程的第一数量确定目标任务;通过主线程领取目标任务的方式还可以为:若节点信息为上线状态,则根据处于运行状态的目标工作线程的第二数据和线程池中工作线程的第一数量确定第一任务集合,获取第一任务集合中触发时间最近的目标任务;通过主线程领取目标任务的方式还可以为:若节点信息为上线状态,则根据处于运行状态的目标工作线程的第二数据和线程池中工作线程的第一数量确定第一任务集合,第一任务集合包括:第一子集合、第二子集合、第三子集合和第四子集合,第一子集合、第二子集合、第三子集合和第四子集合的优先级和子集合的属性有关,选取优先级最高的第一子集合,获取第一子集合中触发时间最近的目标任务。
71.具体的,通过主线程领取目标任务,并将所述目标任务提交到目标工作线程的方式可以为:通过主线程获取数据库中任务领用锁的状态信息;若所述任务领用锁的状态信息为未占用状态,则将所述任务领用锁的状态信息更新为占用状态;通过主线程领取数据库中的任务列表中的目标任务,或者,若所述数据库中的任务列表为空,则获取处于下线状
态的节点对应的目标任务;将所述任务领用锁的状态信息更新为未占用状态;通过主线程将领取的目标任务提交线程池,以使所述线程池将所述目标任务提交到目标工作线程。
72.其中,将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集的方式可以为:通过主线程将领取的目标任务提交线程池,线程池将目标任务提交到目标工作线程。
73.其中,通过所述目标工作线程进行数据采集的方式可以为:将所述目标任务提交到目标工作线程,其中,所述目标任务携带任务信息;根据所述任务信息确定所述目标任务的阶段信息和目标参数;根据所述目标任务的阶段信息和目标参数进行数据采集。通过所述目标工作线程进行数据采集的方式还可以为:将所述目标任务提交到目标工作线程,其中,所述目标任务携带任务信息;根据所述任务信息确定所述目标任务的阶段信息和目标参数;若所述目标任务的阶段信息为数据抽取阶段,则根据数据抽取阶段对应的目标参数进行数据抽取,并将抽取到的数据插入临时表;若所述目标任务的阶段信息为数据检查阶段,则根据数据检查阶段对应的目标参数进行数据检查;若所述目标任务的阶段信息为数据入库阶段,则根据数据入库阶段对应的目标参数进行数据入库。
74.具体的,如图1a所示,本发明实施例提供了一个数据采集系统,数据采集系统包括:由多个节点构成的节点集群、数据库和业务系统,节点根据目标任务从对应的业务系统采集数据。节点集群对接商业银行业务系统,通过节点活跃状态自维护、分布式自组织节点任务领取与处理调度、数据采集处理任务处理三个机制实现数据采集目标。
75.可选的,若所述主线程状态信息为未开启状态,则通过守护线程开启主线程。
76.可选的,所述线程池包括:第一数量的工作线程;
77.相应的,根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,包括:
78.获取节点状态信息和线程池中工作线程的第一数量;
79.若节点状态信息为上线状态,则获取处于运行状态的目标工作线程的第二数量;
80.若所述第二数量小于所述第一数量,则通过主线程领取目标任务,并将所述目标任务提交到目标工作线程;
81.通过所述目标工作线程进行数据采集。
82.其中,所述第一数量为预先设定的最大线程数,在通过主线程初始化工作线程的线程池时,根据预先设定的最大线程数构建工作线程的线程池。
83.其中,若节点状态信息为上线状态,则获取处于运行状态的目标工作线程的第二数量的方式可以为:若节点状态信息为上线状态,则通过主线程获取处于运行状态的目标工作线程的第二数量。若节点状态信息为上线状态,则获取处于运行状态的目标工作线程的第二数量的方式还可以为:若节点状态信息为上线状态,则通过主线程获取工作线程列表中的线程数量,其中,所述工作线程列表中存储处于工作状态的工作线程。
84.具体的,若第二数量小于第一数量,则通过主线程领取目标任务,并将所述目标任务提交到目标工作线程,若第二数量大于或者等于第一数量,则继续通过主线程获取工作线程的状态,若工作线程的状态为空闲状态(说明工作线程之前执行的任务已经结束),则将处于空闲状态的工作线程从工作线程列表中删除。
85.可选的,通过主线程领取目标任务,并将所述目标任务提交到目标工作线程,包
括:
86.通过主线程获取数据库中任务领用锁的状态信息;
87.若所述任务领用锁的状态信息为未占用状态,则将所述任务领用锁的状态信息更新为占用状态;
88.通过主线程领取数据库中的任务列表中的目标任务,或者,若所述数据库中的任务列表为空,则获取处于下线状态的节点对应的目标任务;
89.将所述任务领用锁的状态信息更新为未占用状态;
90.通过主线程将领取的目标任务提交线程池,以使所述线程池将所述目标任务提交到目标工作线程。
91.其中,所述任务列表包括:未处理任务和处理失败任务。
92.其中,所述处于下线状态的节点对应的目标任务为在节点处于上线状态时领取的任务,任务未处理完成,由于节点故障或者其他原因,节点下线,任务的状态为处理失败的任务。
93.具体的,在通过主线程领取数据库中的任务列表中的目标任务之后,将所述任务列表中的目标任务的状态更改为处理中。在获取处于下线状态的节点对应的目标任务之后,将目标任务添加至任务列表中,并同时记录目标任务的状态为处理中。以便于对目标任务进行监控。
94.其中,若所述任务领用锁的状态信息为未占用状态,则将所述任务领用锁的状态信息更新为占用状态为获得任务领用锁。将所述任务领用锁的状态信息更新为未占用状态为释放任务领用锁,通过上述方式能够防止出现不同的节点领用同一任务的情况。使得不同的节点串行领取任务,在领取任务后不同的节点可以并行处理任务。
95.在一个具体的例子中,如图1b所示,守护线程定时检查主线程状态,如果主线程未启动则尝试启动主线程。若主线程启动,则初始化线程池,预先设定最大线程数量。检查当前节点在签到表中的状态是否为上线状态,如果否则持续检查,如果是则继续执行下面步骤:如果当前运行中的工作线程的数量小于预先设定的最大线程数,则表示可执行任务,主线程尝试获取任务领用锁的状态信息,如果当前有其它处理节点正在领取任务(任务领用锁的状态信息为占用状态),则当前节点进行锁等待,保证节点处理任务领取的并发一致性。若任务领用锁的状态信息为未占用状态,则将所述任务领用锁的状态信息更新为占用状态,也就是获得任务领用锁,通过主线程从当日任务列表中获取可执行任务集合s,可执行任务集合包含4个场景子集s={t1,t2,t3,t4},其中,t1为正常待处理任务,即任务处理时间到期且任务状态为待处理任务集合;t2为需故障转移任务,即任务处理状态是处理中但登记的处理节点状态为下线的任务集合;t3为意外丢失任务,即任务状态为处理中且任务处理节点为本节点但任务不在当前工作线程中;t4为处理失败任务,即任务处理状态为失败。主线程从可执行任务中领取一笔任务提交到工作线程池并记录工作线程,任务领取有限级别为t1》t2》t3》t4,通过上述步骤实现了节点动态加入的处理能力扩展和服务器下线的故障转移。更新任务状态(处理节点为当前节点名,处理状态为处理中),释放任务处理锁。如果当前运行中的工作线程大于或者等于最大工作线程数,轮询工作线程列表,删除已结束的工作线程并更新运行中的工作线程数。
96.具体的,每张原数据表对应一个采集任务,采集批量启动后,通过线程池方式加载
可执行的采集任务。守护线程负责拉起主线程,主线程启动工作线程执行具体采集任务。每个节点仅有一个活跃的数据采集主线程,但可有多个工作线程。
97.可选的,还包括:
98.获取数据库中的签到间隔;
99.获取数据库中的签到处理锁的状态信息;
100.若所述签到处理锁的状态信息为未占用状态,则将所述签到处理锁的状态信息更新为占用状态,并在数据库中的签到表中插入签到信息;或者,更新数据库中的签到表中的签到信息;
101.获取其他节点的签到信息;
102.根据所述其他节点的签到信息确定其他节点的状态信息;
103.根据所述其他节点的状态信息更新所述签到表,将签到处理锁的状态信息更新为未占用状态。
104.其中,所述签到间隔为预先预定的签到间隔,获取数据库中的签到间隔的方式可以为:获取目标服务器中的数据库中的签到间隔,也就是说,所述数据库可以为除节点外的其他服务器。
105.其中,所述签到信息包括:节点状态,例如可以是上线状态或者未上线状态。
106.其中,所述签到表中存储节点标识、节点标识对应的节点状态以及签到时间。
107.可选的,所述其他节点的签到信息包括:其他节点的上次签到时间、签到时间和缓冲时间;
108.相应的,根据所述其他节点的签到信息确定其他节点的状态信息,包括:
109.若所述其他节点的上次签到时间、所述签到间隔和所述缓冲时间之和小于当前系统时间,则确定其他节点的状态信息为下线状态,其中,所述缓冲时间等于签到时间的n倍,其中,n为正整数。
110.其中,所述缓冲时间一般情况下取一倍的缓冲时间。
111.在一个具体的例子中,如图1c所示,step1:签到间隔为系统参数,每个节点每隔签到间隔进行一次签到。step2:每个节点在签到前,需要先获取签到处理锁,如果锁被其它节点占用则等待。step3:签到时如果签到表没有当前节点(新增节点的情况),则插入签到记录。如果已有签到记录,则更新签到时间和节点状态。step4:完成自身签到后,进行其它节点状态检查。如果满足以下条件判断:上次签到时间 签到间隔 缓冲时间《当前系统时间,则确定当前节点为节点故障,更新节点状态为下线。其中,缓冲时间为签到间隔的整数倍,一般取一倍的签到间隔。通过以上步骤集群中所有节点共同维护节点状态表,各节点通过检查状态表可感知集群中的所有活跃节点与非活跃节点。
112.节点活跃状态自维护是实现任务分配与数据采集的前提,本发明实施例提供的技术方案采用活跃节点主动签到的心跳机制,实现无中心化节点的节点状态感知。各节点约定间隔心跳时间在数据库表中进行签到,每个节点签到的同时,检查其它节点是否存在逾期未签到情况,如果存在超期未签到,判定该节点故障并更新其节点状态。
113.需要说明的是,批量服务器互为对等节点,个别节点发生宕机,其负责处理的任务,需要转移到正常节点,保证数据采集的业务完整性。宕机节点恢复后,未处理任务可重新分配到该节点。节点可实现动态加入和退出,新加入节点可随时参与数据采集处理,退出
节点的任务可被运行节点接管。
114.可选的,将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,包括:
115.将所述目标任务提交到目标工作线程,其中,所述目标任务携带任务信息;
116.根据所述任务信息确定所述目标任务的阶段信息和目标参数;
117.根据所述目标任务的阶段信息和目标参数进行数据采集。
118.其中,所述目标任务的阶段信息可以为:数据抽取阶段,也可以为:数据检查阶段,或者可以为数据入库阶段,需要说明的是,目标任务处于不同的阶段对应的目标参数不同。
119.可选的,根据所述目标任务的阶段信息和目标参数进行数据采集,包括:
120.若所述目标任务的阶段信息为数据抽取阶段,则根据数据抽取阶段对应的目标参数进行数据抽取,并将抽取到的数据插入临时表;
121.若所述目标任务的阶段信息为数据检查阶段,则根据数据检查阶段对应的目标参数进行数据检查;
122.若所述目标任务的阶段信息为数据入库阶段,则根据数据入库阶段对应的目标参数进行数据入库。
123.具体的,若所述目标任务的阶段信息为数据抽取阶段,则根据数据抽取阶段对应的目标参数进行数据抽取,并将抽取到的数据插入临时表的方式可以为:若所述目标任务的阶段信息为数据抽取阶段,则根据系统标识、表标识和业务数据字段进行数据抽取,并将抽取到的数据插入临时表。
124.具体的,若所述目标任务的阶段信息为数据检查阶段,则根据数据检查阶段对应的目标参数进行数据检查的方式可以为:若所述目标任务的阶段信息为数据检查阶段,则根据数据检查阶段对应的目标参数对临时表中的数据进行数据检查,例如可以是,根据数据标准参数对临时表中的数据进行数据检查。
125.具体的,若所述目标任务的阶段信息为数据入库阶段,则根据数据入库阶段对应的目标参数进行数据入库的方式可以为:根据存储位置信息将检查后的临时表中的数据进行入库处理。
126.在一个具体的例子中,如图1d所示,某个节点通过主线程领取到目标任务后,将目标任务提交到工作线程进行具体的数据采集处理,一个数据采集任务分为数据抽取、数据检查、数据入库三个阶段。step1:工作线程检查目标任务所处阶段,从当前所处阶段开始运行相应的处理步骤。step2:当任务处于数据抽取阶段,工作线程根据数据表结构映射关系参数自动生成数据查询语句从源系统查询数据插入临时表。step3:根据商业银行指定的数据标准,对临时表数据进行数据质量检查。step4:数据质量检查后将数据进行入库。
127.本发明实施例实现了可扩展的对等分布式数据采集系统,相比传统的服务器部署方式,本发明实施例实现了多活的部署方式,故障切换更加及时,并行处理能力更强。相比传统的主从分布式处理方式,本发明实施例实现了去中心的对等部署方式,减少了主从分布式结构下主节点的性能瓶颈风险,以及主节点的故障风险。此外,本发明实施例还实现了动态横向扩展能力,整个系统无需停机即可新增节点扩展处理能力。
128.本实施例的技术方案,通过守护线程获取主线程状态信息;若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;根据节点信息通过所述主线
程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,既解决了数据采集效率低,处理能力不可扩展,服务器故障恢复不够及时的问题,又解决了主节点为中心化节点,主节点服务器故障整个系统不可用,主节点容易成为处理效率的瓶颈的问题,能够根据各节点自身处理能力均衡负载到各节点,各节点并行处理数据采集任务,提升数据采集效率。
129.图2为本发明实施例提供的一种数据采集装置的结构示意图。本实施例可适用于数据采集的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供数据采集功能的设备中,如图2所示,所述数据采集装置具体包括:获取模块210、初始化模块220和采集模块230。
130.其中,获取模块,用于通过守护线程获取主线程状态信息;
131.初始化模块,用于若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;
132.采集模块,用于根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集。
133.上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
134.本实施例的技术方案,通过守护线程获取主线程状态信息;若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集,既解决了数据采集效率低,处理能力不可扩展,服务器故障恢复不够及时的问题,又解决了主节点为中心化节点,主节点服务器故障整个系统不可用,主节点容易成为处理效率的瓶颈的问题,能够根据各节点自身处理能力均衡负载到各节点,各节点并行处理数据采集任务,提升数据采集效率。
135.图3为本发明实施例三提供的一种电子设备的结构示意图。图3示出了适于用来实现本发明实施方式的电子设备312的框图。图3显示的电子设备312仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备312是典型的轨迹拟合功能的计算设备。
136.如图3所示,电子设备312以通用计算设备的形式表现。电子设备312的组件可以包括但不限于:一个或者多个处理器316,存储装置328,连接不同系统组件(包括存储装置328和处理器316)的总线318。
137.总线318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture,isa)总线,微通道体系结构(micro channel architecture,mca)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnect,pci)总线。
138.电子设备312典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备312访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
139.存储装置328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取
存储器(random access memory,ram)330和/或高速缓存存储器332。电子设备312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统334可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(compact disc-read only memory,cd-rom)、数字视盘(digital video disc-read only memory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线318相连。存储装置328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
140.具有一组(至少一个)程序模块326的程序336,可以存储在例如存储装置328中,这样的程序模块326包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块326通常执行本发明所描述的实施例中的功能和/或方法。
141.电子设备312也可以与一个或多个外部设备314(例如键盘、指向设备、摄像头、显示器324等)通信,还可与一个或者多个使得用户能与该电子设备312交互的设备通信,和/或与使得该电子设备312能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口322进行。并且,电子设备312还可以通过网络适配器320与一个或者多个网络(例如局域网(local area network,lan),广域网wide area network,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器320通过总线318与电子设备312的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备312使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundant arrays of independent disks,raid)系统、磁带驱动器以及数据备份存储系统等。
142.处理器316通过运行存储在存储装置328中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的数据采集方法:
143.通过守护线程获取主线程状态信息;
144.若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;
145.根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集。
146.图4为本发明实施例中的一种包含计算机程序的计算机可读存储介质的结构示意图。本发明实施例提供了一种计算机可读存储介质61,其上存储有计算机程序610,该程序被一个或多个处理器执行时实现如本技术所有发明实施例提供的数据采集方法:
147.通过守护线程获取主线程状态信息;
148.若所述主线程状态信息为开启状态,则通过所述主线程初始化工作线程的线程池;
149.根据节点信息通过所述主线程领取目标任务,并将所述目标任务提交到目标工作线程,通过所述目标工作线程进行数据采集。
150.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算
机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
151.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
152.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
153.在一些实施方式中,客户端、服务器可以利用诸如http(hyper text transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
154.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
155.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
156.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
157.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
158.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
159.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
160.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

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

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

相关文献