CN109284193B - 一种基于多线程的分布式数据处理方法及服务器 - Google Patents
一种基于多线程的分布式数据处理方法及服务器 Download PDFInfo
- Publication number
- CN109284193B CN109284193B CN201811039237.5A CN201811039237A CN109284193B CN 109284193 B CN109284193 B CN 109284193B CN 201811039237 A CN201811039237 A CN 201811039237A CN 109284193 B CN109284193 B CN 109284193B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- thread
- working thread
- data type
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种基于多线程的分布式数据处理方法及服务器,包括:获取信息库所存储的增量数据,并确定与增量数据的数据类型匹配的工作线程;若匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定匹配的工作线程的执行顺序;根据匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过目标工作线程对增量数据进行处理;接收目标分布式设备返回的用于标识目标工作线程执行完成的确认信息;确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。本发明实施例能够避免工作线程抢占资源,节省系统资源,也避免了同一线程重复执行扰乱制证操作流程的情况发生,能够提高制证效率。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于多线程的分布式数据处理方法及服务器。
背景技术
传统的制证方法是通过人工手动采集业务数据,再对该业务数据进行格式审核和添加必要的制证信息(如制证日期等),最终将经过格式审核的业务数据和添加的制证信息一起存储到制证表中,从而完成制证。在整个制证过程中,业务数据涉及调取数据、核算以及制证等多个阶段的操作流程,而每一阶段的流程分别由相应的工作线程来进行处理。
然而,现有技术中,当业务数据出现错误时,工作线程的整个处理流程也会受到影响,可能会出现同一业务数据被多个工作线程同时存取的情况,因增加数据处理压力而造成系统资源浪费,可能导致同一线程重复执行扰乱制证操作流程,同时也降低了制证效率。
发明内容
有鉴于此,本发明实施例提供了一种基于多线程的分布式数据处理方法及服务器,以解决现有技术中,当业务数据出现错误时,可能会出现同一业务数据被多个工作线程同时存取的情况,从而导致同一线程重复执行扰乱制证操作流程,也降低了制证效率的问题。
本发明实施例的第一方面提供了一种基于多线程的分布式数据处理方法,包括:
获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
本发明实施例的第二方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
实施本发明实施例提供的一种基于多线程的分布式数据处理方法及服务器具有以下有益效果:
本发明实施例,服务器通过预设的线程令牌表确定与增量数据匹配的工作线程的执行顺序,并根据确定的执行顺序控制分布式设备启动工作线程对增量数据进行处理。由于预设的线程令牌表包括用于标识每个工作线程的执行顺序的信息,仅在一个工作线程执行完成时,才触发下一工作线程的启动,能够避免在一个工作线程未执行完成时,出现另一工作线程抢占资源的情况发生,节省系统资源,也避免了同一线程重复执行扰乱制证操作流程的情况发生,能够提高制证效率;由于任意时刻只有一个工作线程处于执行状态,避免了工作线程之间的相互干扰,在提高数据制证效率的同时,还维护了数据的完整性以及系统的可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于多线程的分布式数据处理方法的实现流程图;
图2是本发明另一实施例提供的一种基于多线程的分布式数据处理方法的实现流程图;
图3是本发明一实施例提供的一种服务器的结构框图;
图4是本发明另一实施例提供的一种服务器的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参见图1,图1是本发明一实施例提供的一种基于多线程的分布式数据处理方法的实现流程图。本实施例中基于多线程的分布式数据处理方法的执行主体为服务器。如图所示的基于多线程的分布式数据处理方法可包括:
S101:获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程。
信息库中存储了在制证过程中不同执行阶段所需的所有数据类型的数据。数据类型包括制证业务的原始数据、审核数据、制证数据等。每种数据类型的增量数据需要由匹配的工作线程来执行制证操作。制证业务的原始数据包括但不限于制作某类证件的所需的基础数据,制证数据包括但不限于制证日期、申请人的个人信息。
增量数据是指新增加的数据,例如当前时刻相对于上一时刻新增加的数据。
增量数据可以有不同的数据类型的数据,由于每种数据类型的增量数据需要由匹配的工作线程进行处理,以通过所有匹配的工作线程共同完成制证,因此,当增量数据包括N种数据类型时,要启动N个工作线程来完成整个制证过程,N为正整数。服务器在获取到增量数据时,根据每种数据类型包含的数据的名称确定增量数据所属的数据类型;并基于数据类型与工作线程之间的预设对应关系,确定与获取到的增量数据的数据类型相匹配的工作线程。
与同一增量数据相匹配的工作线程可以是一个,也可以是至少两个。当匹配的工作线程的数目为至少两个时,执行S102。
S102:若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序。
服务器内预先存储有预设的线程令牌表,为了避免在一个工作线程未执行完成时,出现另一工作线程抢占资源的情况发生,线程令牌表包括用于标识每个工作线程的执行顺序的信息,仅在一个工作线程执行完成时,才触发下一个工作线程的启动。例如,线程令牌表中可以通过工作线程的调度序号表示每个工作线程的执行顺序;还可以通过向工作线程分发令牌的先后顺序,来标识每个工作线程的执行顺序。其中,拥有令牌的工作线程具有开启工作线程的权限,当接收到令牌的工作线程在执行的过程中,其他工作线程均无法启动,直到拥有令牌的工作线程执行结束,释放令牌,其他接收到令牌的工作线程才可以开启。
当预设的线程令牌表包含工作线程的调度序号时,服务器可以根据所有匹配的工作线程的调度序号确定每个匹配的工作线程各自对应的执行顺序。其中,可以按调度序号从小到大的顺序确定匹配的工作线程的执行顺序,在本实施例中,调度序号小的工作线程优先执行。
当预设的线程令牌表包括向工作线程分发令牌的先后顺序时,服务器根据预设的线程令牌表中包含的向工作线程分发令牌表的先后顺序,确定匹配的工作线程的执行顺序。其中,拿到令牌的工作线程优先执行。
S103:根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态。
其中,分布式设备包括但不限于分布式终端,一个分布式设备可以用于执行一个工作线程,也可以执行不同的工作线程,但同一个分布式设备不能同时执行两个或两个以上的工作线程,即一个分布式设备同一时刻只能执行一个工作线程。
当一个分布式设备用于执行一个工作线程,不同的工作线程分别由不同的分布式设备执行时,可以避免工作线程之间的相互干扰。
具体地,服务器可以根据匹配的工作线程各自的执行顺序确定当前需要启动的目标工作线程;通知用于执行目标工作线程的目标分布式设备启动目标工作线程,以使得目标分布式设备能够通过目标工作线程对增量数据进行处理。具体实现过程如下:
服务器根据所有匹配的工作线程各自对应的执行顺序,从匹配的工作线程中确定当前需要启动的目标工作线程,目标工作线程的执行顺序排在最前。在任意时刻需要启动的目标工作线程的数量为一个,且在任意时刻只有一个工作进程处于执行状态。
服务器内预先存储了每个工作进程对应的分布式设备的标识,在确定目标工作进程时,根据每个工作进行对应的分布式设备的标识,确定目标工作线程对应的目标分布式设备的标识,并根据目标分布式设备的标识向目标分布式设备发送启动通知消息,该启动通知消息包括目标线程的标识,以使得目标分布式设备在接收到启动通知消息时,能够根据通知消息中包含的目标线程的标识启动目标工作线程,通过目标工作线程按预设的处理流程处理目标工作线程对应的增量数据。
其中,分布式设备可以在接收到启动通知时,从服务器或信息库中获取目标工作线程所对应的增量数据,并通过目标工作线程按预设的处理流程对获取到的增量数据进行处理。可以理解的是,目标工作线程所对应的增量数据也可以是服务器通过启动通知发送给目标分布式设备。
分布式设备在检测到目标工作线程执行完毕时,向服务器返回用于标识所述目标工作线程执行完成的确认信息。
可以理解的是,分布式设备在检测到执行目标工作线程的过程中出错时,向服务器返回用于表示目标工作线程故障的通知消息,以便服务器通知目标分布式设备重新启动目标工作线程。
S104:接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
服务器接收目标分布式设备在检测到目标工作线程执行完毕时发送的用于标识目标工作线程执行完成的确认信息,并返回S103,根据目标工作线程的标识以及匹配的工作线程各自的执行顺序重新确定目标工作线程,并根据匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过目标工作线程对所述增量数据进行处理,直到最后一个匹配的工作线程执行完毕,结束本次控制流程。即,当重新确定的目标工作线程为匹配的工作线程中的最后一个时,在返回执行S103,并执行完S104之后,结束本次流程。
当不同的工作线程由不同的分布式设备执行时,服务器在重新确定目标工作线程时,可以根据每个工作进行对应的分布式设备的标识确定重新确定的目标工作线程对应的目标分布式设备,并通知其启动重新确定的目标工作线程。
上述方案,服务器通过预设的线程令牌表确定与增量数据匹配的工作线程的执行顺序,并根据确定的执行顺序控制分布式设备启动工作线程对增量数据进行处理。由于预设的线程令牌表包括用于标识每个工作线程的执行顺序的信息,仅在一个工作线程执行完成时,才触发下一工作线程的启动,能够避免在一个工作线程未执行完成时,出现另一工作线程抢占资源的情况发生,节省系统资源,也避免了同一线程重复执行扰乱制证操作流程的情况发生,能够提高制证效率;由于任意时刻只有一个工作线程处于执行状态,避免了工作线程之间的相互干扰,在提高数据制证效率的同时,还维护了数据的完整性以及系统的可靠性。
请参见图2,图2是本发明另一实施例提供的一种基于多线程的分布式数据处理方法的实现流程图。本实施例中基于多线程的分布式数据处理方法的执行主体为服务器。如图所示的基于多线程的分布式数据处理方法可包括:
S201:按预设时间间隔统计每种数据类型的数据的读取次数以及读取信息量。
预设时间间隔可以是1小时、2小时,也可以根据实际需要进行设置,此处不做限制。
服务器按预设时间间隔统计在每个预设时间间隔对应的时间段内,每个时刻从数据库中获取每种数据类型的数据的读取次数以及读取到每种数据类型的数据的读取信息量,得到每个时间段内每种数据类型的数据的总读取次数以及总读取数据信息量。读取信息量是指读取的数据所占的比特数。
S202:基于每种所述数据类型的数据的读取次数以及读取信息量,确定每种所述数据类型的数据的活跃度。
服务器内预先存储了多个活跃度等级,每个活跃度等级同时对应一个读取次数区间以及一个信息量区间。服务器在获取到每种数据类型的数据的读取次数以及读取信息量时,确定每种数据类型的数据的读取次数所属的读取次数区间,以及确定每种数据类型的数据的读取信息量所属的信息量区间。
由于每个活跃度等级同时对应一个读取次数区间以及一个信息量区间,在确定每种数据类型的数据的信息量区间以及读取次数区间时,获取与该信息量区间以及读取次数区间均匹配的活跃度等级,得到每种数据类型的数据各自对应的活跃度等级。
进一步地,S202具体为:基于每种所述数据类型的数据的读取次数以及读取信息量,通过活跃度计算公式计算每种所述数据类型的数据的活跃度;其中,所述活跃度计算公式为:
所述Acti表示一种数据类型的数据的活跃度,所述RdWdm表示第m次所读取的该种数据类型的数据的读取信息量;所述RdWtm表示该种数据类型的数据在第m次被读取时,其读取信息量所对应的权重比值系数,0<RdWtm<1;所述RdTime表示预设时间间隔内种数据类型的数据的读取次数;所述RdWtTime表示与所述读取次数所属区间对应的预设系数。
S203:将每种所述数据类型的数据缓存至与所述数据类型的数据的活跃度匹配的缓存区域。
其中,服务器预先设置每个缓存区域的优先级,缓存区域的优先级与数据的活跃度相关,优先级越高的缓存区域用于存储活跃度越高的数据。例如,优先级为1的缓存区域用于存储活跃度等级为第一等级的数据,优先级为2的缓存区域用于存储活跃度等级为第二等级的数据,优先级为3的缓存区域用于存储活跃度等级为第三等级的数据。例如,将数据量较少且访问频率较高的数据存入优先级为1的缓存区域。
相同优先级的缓存区域可以是一个,也可以有至少两个,此处不做限制。
按数据的活跃度将数据存储至与活跃度相匹配的缓存区,以便服务器能够从缓存区获取增量数据,这将会减少了对数据库中所存储数据的访问量;基于缓存区域相对于数据库具有快速读写的特性,实现了数据有序、高效地查询。
S204:获取所述缓存区域中的增量数据,并确定与所述增量数据的数据类型匹配的工作线程。
服务器可以每隔预设时间间隔遍历所有缓存区域,获取缓存区域中的增量数据;也可以根据缓存区域的优先级从高到低的顺序依次获取每个缓存区域中的增量数据。确定与所述增量数据的数据类型匹配的工作线程的方法与上一实施例S101中确定匹配的工作线程的方法相同,具体请参阅上一实施例S101中的相关描述,此处不赘述。
S205:若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序。
本实施例中S205与上一实施例中的S102相同,具体请参阅上一实施例中S102的相关描述,此处不赘述。
S206:根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态。
本实施例中S206与上一实施例中的S103相同,具体请参阅上一实施例中S103的相关描述,此处不赘述。
S207:接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
本实施例中S207与上一实施例中的S104相同,具体请参阅上一实施例中S104的相关描述,此处不赘述。
可选地,为了避免在数据处理量较多时,触及处理速度较慢导致工作线程的实际执行时长大于预设执行时长时扼杀合法的工作线程。在S206之后,还可以包括S208~S209。具体地:
S208:获取所述目标工作线程对应的预设执行时长。
服务器内预先存储有每个工作线程的预设执行时长。每个工作线程的预设执行时长用于判断工作线程是否执行完毕,每个工作线程的预设执行时长可以根据一个工作线程从开始执行到执行完毕之间的平均时长进行设置。
S209:若在所述预设执行时长对应的结束时刻未接收到所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息,则向所述目标分布式设备发送超时告警信息;所述超时告警提示信息用于通知所述目标分布式设备提示用户是否终止所述目标工作线程。
服务器可以在通知目标分布式设备启动目标工作线程时,启动定时器进行定时,并在确定定时时间大于或等于预设执行时长时,如果仍然未获取到目标分布式设备返回的用于标识目标工作线程执行完成的确认信息,那么向目标分布式设备发送超时告警信息,超时告警提示信息包括目标工作线程的信息,用于通知目标分布式设备目标工作线程执行时长超时,并通知目标分布式设备提示用户是否终止目标工作线程,以便分布式设备在接收到该超时告警信息时,提示用户是否终止目标工作线程。
在本实施例中,当工作线程的实际执行时长大于或等于预设执行时长时,不会直接结束该工作线程,而是通过告警的方式来提示用户进行干预操作,由此避免了在数据处理量较多时,扼杀了合法的工作线程,提高了数据的制证效率。当用户确定当前的工作线程执行正常时,可以通过目标分布式设备的交互界面触发继续执行指令,以控制目标分布式设备继续执行目标工作线程。
当用户确定当前的工作线程为数据异常原因而导致的超时,用户可以通过目标分布式设备的交互界面触发工作线程终止指令,此时,目标分布式设备向服务器发送工作线程终止请求,以使服务器在接收到该工作线程终止请求时,根据工作线程终止请求包含的工作线程的信息重启相应的工作线程,避免了服务器在当前时刻达到目标工作线程的预设执行时长对应的结束时刻时,直接启动下一工作线程,保证了数据的有序执行。
可选地,为了直观展现制证异常情况快速定位异常原因,在S206之后,还可以包括S210~S212。具体地:
S210:获取所述分布式设备发送的异常告警日志。
日志文件是分布式设备在执行工作线程的过程中检测到异常时创建的异常信息告警日志,异常告警日志包括创建异常告警日志的具体时刻,还可以包括异常标记,异常标记用于定位异常原因。
S211:根据所述异常告警日志统计每个统计周期的告警概率。
服务器根据统计异常告警日志的创建时间统计每个统计周期内异常告警日志的总数,统计周期可以是1小时、2小时、4小时或24小时,具体可根据实际情况进行设置,此处不做限制。
示例性地,以2小时为1个统计周期,服务器根据异常告警日志的创建时间,可确定每一条异常告警所属的统计周期,根据每个统计周期内的异常告警的总数与统计周期对应的时长计算每个统计周期的告警概率。一个统计周期的告警概率为该统计周期内的异常告警的总数与该统计周期对应的时长之间的比值。
该概率曲线分布图中,以时间为横轴,告警概率为纵轴,描绘告警概率曲线,并以当天的告警概率曲线来确定第二天各个时间周期内异常信息告警日志的数目。
S212:根据每个所述统计周期的告警概率生成告警概率曲线。
告警概率曲线记录了每个统计周期的告警概率,直观地展现制证异常的高峰期。告警概率曲线以时间为横轴,告警概率为纵轴。
进一步地,服务器还可以根据告警概率曲线预测同期的告警概率。同期的告警概率是指相同时间段的告警概率。例如,可以通过第一天各统计周期的告警概率预测第二天相同时段所属的统计周期的告警概率。
上述方案,服务器通过预设的线程令牌表确定与增量数据匹配的工作线程的执行顺序,并根据确定的执行顺序控制分布式设备启动工作线程对增量数据进行处理。由于预设的线程令牌表包括用于标识每个工作线程的执行顺序的信息,仅在一个工作线程执行完成时,才触发下一工作线程的启动,能够避免在一个工作线程未执行完成时,出现另一工作线程抢占资源的情况发生,节省系统资源,也避免了同一线程重复执行扰乱制证操作流程的情况发生,能够提高制证效率;由于任意时刻只有一个工作线程处于执行状态,避免了工作线程之间的相互干扰,在提高数据制证效率的同时,还维护了数据的完整性以及系统的可靠性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
请参阅图3,图3是本发明一实施例提供的一种服务器的结构框图,服务器包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1以及图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图3,服务器3包括:
工作线程确定单元310,用于获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
执行顺序确定单元320,用于若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
控制单元330,用于根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收单元340,用于接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程。
可选地,服务器3还可以包括:
执行时长获取单元,用于获取所述目标工作线程对应的预设执行时长;
发送单元,用于若在所述预设执行时长对应的结束时刻未接收到所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息,则向所述目标分布式设备发送超时告警信息;所述超时告警提示信息用于通知所述目标分布式设备提示用户是否终止所述目标工作线程。
可选地,服务器3还可以包括:
统计单元,用于按预设时间间隔统计每种数据类型的数据的读取次数以及读取信息量;
活跃度确定单元,用于基于每种所述数据类型的数据的读取次数以及读取信息量,确定每种所述数据类型的数据的活跃度;
缓存单元,用于将每种所述数据类型的数据缓存至与所述数据类型的数据的活跃度匹配的缓存区域;
工作线程确定单元310具体用于:获取所述缓存区域中的增量数据,并确定与所述增量数据的数据类型匹配的工作线程。
进一步地,活跃度确定单元具体用于:基于每种所述数据类型的数据的读取次数以及读取信息量,通过活跃度计算公式计算每种所述数据类型的数据的活跃度;其中,所述活跃度计算公式为:
所述Acti表示一种数据类型的数据的活跃度,所述RdWdm表示第m次所读取的该种数据类型的数据的读取信息量;所述RdWtm表示该种数据类型的数据在第m次被读取时,其读取信息量所对应的权重比值系数;所述RdTime表示预设时间间隔内种数据类型的数据的读取次数;所述RdWtTime表示与所述读取次数所属区间对应的预设系数。
可选地,服务器3还可以包括:
告警日志获取单元,用于获取所述分布式设备发送的异常告警日志;
告警概率计算单元,用于根据所述异常告警日志统计每个统计周期的告警概率;
生成单元,用于根据每个所述统计周期的告警概率生成告警概率曲线。
请参阅图4,图4是本发明另一实施例提供的一种服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个基于多线程的分布式数据处理方法实施例中的步骤,例如图1所示的S101至S104。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各单元的功能,例如图3所示单元310至340的功能。
示例性的,所述计算机程序42可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述服务器4中的执行过程。例如,所述计算机程序42可以被分割成工作线程确定单元、执行顺序确定单元、控制单元以及接收单元等,各单元具体功能如上所述。
所述服务器可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储设备,例如所述服务器4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于多线程的分布式数据处理方法,其特征在于,包括:
获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程;
所述获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程之前,还包括:
按预设时间间隔统计每种数据类型的数据的读取次数以及读取信息量;
基于每种所述数据类型的数据的读取次数以及读取信息量,确定每种所述数据类型的数据的活跃度;
将每种所述数据类型的数据缓存至与所述数据类型的数据的活跃度匹配的缓存区域;
所述获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程,包括:
获取所述缓存区域中的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
所述基于每种所述数据类型的数据的读取次数以及读取信息量,计算每种所述数据类型的数据的活跃度,包括:
基于每种所述数据类型的数据的读取次数以及读取信息量,通过活跃度计算公式计算每种所述数据类型的数据的活跃度;其中,所述活跃度计算公式为:
所述Acti表示一种数据类型的数据的活跃度,所述RdWdm表示第m次所读取的该种数据类型的数据的读取信息量;所述RdWtm表示该种数据类型的数据在第m次被读取时,其读取信息量所对应的权重比值系数;所述RdTime表示预设时间间隔内种数据类型的数据的读取次数;所述RdWtTime表示与所述读取次数所属区间对应的预设系数。
2.根据权利要求1所述的基于多线程的分布式数据处理方法,其特征在于,所述根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理之后,还包括:
获取所述目标工作线程对应的预设执行时长;
若在所述预设执行时长对应的结束时刻未接收到所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息,则向所述目标分布式设备发送超时告警信息;所述超时告警信息用于通知所述目标分布式设备提示用户是否终止所述目标工作线程。
3.根据权利要求1至2任一项所述的基于多线程的分布式数据处理方法,其特征在于,所述根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理之后,还包括:
获取所述分布式设备发送的异常告警日志;
根据所述异常告警日志统计每个统计周期的告警概率;
根据每个所述统计周期的告警概率生成告警概率曲线。
4.一种服务器,其特征在于,所述服务器包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
若所述匹配的工作线程的数目为至少两个,则根据预设的线程令牌表确定所述匹配的工作线程的执行顺序;
根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理;其中,分布式设备用于为工作线程提供运行环境,所述目标工作线程为当前需要启动的工作线程,所述目标分布式设备为用于执行所述目标工作线程的分布式设备,任意时刻只有一个工作线程处于启动状态;
接收所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息;所述确认信息用于重新确定目标工作线程以及启动所述重新确定的目标工作线程;
所述获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程之前,所述处理器执行所述计算机程序时还实现如下步骤:
按预设时间间隔统计每种数据类型的数据的读取次数以及读取信息量;
基于每种所述数据类型的数据的读取次数以及读取信息量,确定每种所述数据类型的数据的活跃度;
将每种所述数据类型的数据缓存至与所述数据类型的数据的活跃度匹配的缓存区域;
所述获取信息库所存储的增量数据,并确定与所述增量数据的数据类型匹配的工作线程,包括:
获取所述缓存区域中的增量数据,并确定与所述增量数据的数据类型匹配的工作线程;
所述基于每种所述数据类型的数据的读取次数以及读取信息量,计算每种所述数据类型的数据的活跃度,包括:
基于每种所述数据类型的数据的读取次数以及读取信息量,通过活跃度计算公式计算每种所述数据类型的数据的活跃度;其中,所述活跃度计算公式为:
所述Acti表示一种数据类型的数据的活跃度,所述RdWdm表示第m次所读取的该种数据类型的数据的读取信息量;所述RdWtm表示该种数据类型的数据在第m次被读取时,其读取信息量所对应的权重比值系数;所述RdTime表示预设时间间隔内种数据类型的数据的读取次数;所述RdWtTime表示与所述读取次数所属区间对应的预设系数。
5.根据权利要求4所述的服务器,其特征在于,所述根据所述匹配的工作线程各自的执行顺序控制目标分布式设备启动目标工作线程,以通过所述目标工作线程对所述增量数据进行处理之后,所述处理器执行所述计算机程序时还实现如下步骤:
获取所述目标工作线程对应的预设执行时长;
若在所述预设执行时长对应的结束时刻未接收到所述目标分布式设备返回的用于标识所述目标工作线程执行完成的确认信息,则向所述目标分布式设备发送超时告警信息;所述超时告警信息用于通知所述目标分布式设备提示用户是否终止所述目标工作线程。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039237.5A CN109284193B (zh) | 2018-09-06 | 2018-09-06 | 一种基于多线程的分布式数据处理方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039237.5A CN109284193B (zh) | 2018-09-06 | 2018-09-06 | 一种基于多线程的分布式数据处理方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284193A CN109284193A (zh) | 2019-01-29 |
CN109284193B true CN109284193B (zh) | 2022-12-09 |
Family
ID=65183736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811039237.5A Active CN109284193B (zh) | 2018-09-06 | 2018-09-06 | 一种基于多线程的分布式数据处理方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284193B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625322B (zh) * | 2019-02-27 | 2024-03-29 | 阿里巴巴集团控股有限公司 | 数据处理方法、系统及设备 |
CN110675115A (zh) * | 2019-08-14 | 2020-01-10 | 中国平安财产保险股份有限公司 | 报价信息催核方法及装置、电子设备和非暂态存储介质 |
CN112328388B (zh) * | 2020-09-17 | 2022-03-08 | 北京中数科技术有限公司 | 一种融合多线程及分布式技术的并行计算方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070156928A1 (en) * | 2005-12-30 | 2007-07-05 | Makaram Raghunandan | Token passing scheme for multithreaded multiprocessor system |
US8024405B2 (en) * | 2006-03-30 | 2011-09-20 | Microsoft Corporation | Declarative model for concurrency-control across lightweight threads |
WO2009076654A1 (en) * | 2007-12-12 | 2009-06-18 | University Of Washington | Deterministic multiprocessing |
US8739163B2 (en) * | 2008-03-11 | 2014-05-27 | University Of Washington | Critical path deterministic execution of multithreaded applications in a transactional memory system |
US8397290B2 (en) * | 2008-06-27 | 2013-03-12 | Microsoft Corporation | Granting least privilege access for computing processes |
CN103716343B (zh) * | 2012-09-29 | 2016-11-09 | 重庆新媒农信科技有限公司 | 基于数据缓存同步的分布式业务请求处理方法及系统 |
CN106326410A (zh) * | 2016-08-23 | 2017-01-11 | 无锡天脉聚源传媒科技有限公司 | 一种数据查询方法及装置 |
CN106776790A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 基于令牌的并发主从同步方法及装置 |
-
2018
- 2018-09-06 CN CN201811039237.5A patent/CN109284193B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109284193A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284193B (zh) | 一种基于多线程的分布式数据处理方法及服务器 | |
CN107301178B (zh) | 数据查询处理方法、装置及系统 | |
CN111858055B (zh) | 任务处理方法、服务器及存储介质 | |
CN110781372B (zh) | 一种优化网站的方法、装置、计算机设备及存储介质 | |
CN111953772B (zh) | 请求处理方法、装置、服务器及存储介质 | |
CN112492370A (zh) | 进度条的展示方法、装置、计算机设备及可读存储介质 | |
CN109714249B (zh) | 一种小程序消息的推送方法及相关装置 | |
CN111124315A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110442466B (zh) | 防止请求重复访问方法、装置、计算机设备及存储介质 | |
CN110569114B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN109040491B (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN111131393B (zh) | 用户活跃度数据统计方法、电子装置及存储介质 | |
CN106855824B (zh) | 一种任务停止方法、装置及电子设备 | |
CN110865877B (zh) | 一种任务请求的响应方法及设备 | |
CN114157717A (zh) | 一种微服务动态限流的系统及方法 | |
CN110113187B (zh) | 一种配置更新方法、装置、配置服务器及配置系统 | |
CN111858049A (zh) | 资源信息的分配方法、装置和计算机设备 | |
CN114706671B (zh) | 一种多处理器调度优化方法与系统 | |
WO2019205382A1 (zh) | 电子装置、采集征信数据的方法及存储介质 | |
CN112115020B (zh) | 一种数据库连接池异常监测方法、装置及计算机设备 | |
CN112463125B (zh) | 一种虚拟定时器的定时方法及设备 | |
CN107967181B (zh) | 临界区的控制方法及装置 | |
CN109063206B (zh) | 文章监控方法及装置 | |
CN116932551A (zh) | 数据表的处理方法、装置、电子设备及存储介质 | |
CN113590642A (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 |