CN113434310B - 多线程任务分配方法、装置、设备及存储介质 - Google Patents

多线程任务分配方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113434310B
CN113434310B CN202110697926.0A CN202110697926A CN113434310B CN 113434310 B CN113434310 B CN 113434310B CN 202110697926 A CN202110697926 A CN 202110697926A CN 113434310 B CN113434310 B CN 113434310B
Authority
CN
China
Prior art keywords
thread
task
executed
tasks
predicted execution
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
CN202110697926.0A
Other languages
English (en)
Other versions
CN113434310A (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 Borui Crystal Core Technology Co ltd
Original Assignee
Shenzhen Borui Crystal Core 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 Borui Crystal Core Technology Co ltd filed Critical Shenzhen Borui Crystal Core Technology Co ltd
Priority to CN202110697926.0A priority Critical patent/CN113434310B/zh
Publication of CN113434310A publication Critical patent/CN113434310A/zh
Application granted granted Critical
Publication of CN113434310B publication Critical patent/CN113434310B/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种多线程任务分配方法、装置、设备及存储介质,其中,方法包括:根据各个待执行任务的标签中的标签信息,将各个待执行任务模拟分配在各个线程中,从而得到各个任务的模拟分配结果,然后根据各个预测执行时间计算离散度,选取离散度最小的不同类别分配各所述待执行任务。本发明的有益效果:在保证处理效率的同时,还可以解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。

Description

多线程任务分配方法、装置、设备及存储介质
技术领域
本发明涉及人工智能领域,特别涉及一种多线程任务分配方法、装置、设备及存储介质。
背景技术
基金代销运营平台涵盖了基金代销过程中各个环节,以及扩展业务带来得一些处理流程。整体流程包含了平台与基金公司交互的文件、清算、对账;平台与支付公司交互的扣款对账、代发;实时TA交互的文件、清算、对账;平台与销售端的交互的开户结果、交易确认结果、分红等。
目前,业内通用的做法是设置多个线程,然后通过分布式处理的方式对各个任务进行处理,但是这样会导致各个线程处理任务得到的处理结果分布在各个线程中,没有规律,难以进行数据汇总,因此亟需一种多线程任务分配方法。
发明内容
本发明的主要目的为提供一种多线程任务分配方法、装置、设备及存储介质,旨在解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
本发明提供了一种多线程任务分配方法,包括:
检测当前待执行任务的数量是否达到了预设数量;
若达到了所述预设数量,则获取各所述待执行任务的标签;
读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
获取各所述模拟分配结果中各个线程的预测执行时间;
计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
在一个实施例中,所述获取各所述模拟分配结果中各个线程的预测执行时间的步骤,包括:
为各个线程设置对应的消息队列;
基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
判断所述最大时间差是否超过了时差预设值;
若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
在一个实施例中,所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
获取所述待执行任务标签中各类类别相对应的类别数值;
获取各所述类别数值之间的最大差值;
基于所述最大差值为各个线程等比例划分数值范围。
在一个实施例中,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
根据所述不同类别为各个线程设定对应的任务类别;
将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
将分配至其他线程的待执行任务迁移至其他线程中执行。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
获取所述暂时线程对应的待执行任务的处理结果;
在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
本发明还提供了一种多线程任务分配装置,包括:
检测模块,用于检测当前待执行任务的数量是否达到了预设数量;
标签获取模块,用于若达到了所述预设数量,则获取各所述待执行任务的标签;
读取模块,用于读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
分配模块,用于基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
时间获取模块,用于获取各所述模拟分配结果中各个线程的预测执行时间;
计算模块,用于计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本发明的有益效果:根据各个待执行任务的标签中的标签信息,将各个待执行任务模拟分配在各个线程中,从而得到各个任务的模拟分配结果,然后根据各个预测执行时间计算离散度,从而选取到离散度最小的不同类别分配待执行任务,从而在保证处理效率的同时,还可以解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
附图说明
图1是本发明一实施例的一种多线程任务分配方法的流程示意图;
图2是本发明一实施例的一种多线程任务分配装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1,本发明提出一种多线程任务分配方法,包括:
S1:检测当前待执行任务的数量是否达到了预设数量;
S2:若达到了所述预设数量,则获取各所述待执行任务的标签;
S3:读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
S4:基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
S5:获取各所述模拟分配结果中各个线程的预测执行时间;
S6:计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
如上述步骤S1所述,检测当前待执行任务的数量是否达到了预设数量。其中,检测的方式可以是设置任务监控脚本,检测当前执行任务的数量,预设数量为事先设定的数值,当小于该数值时,可以不用进行分配,可以将其分配至单一线程或者少数几个线程。当大于该预设数量时,为了提高平台对数据的处理速度,可以对其进行分配处理。若不进行分配,而是采取任意分配的处理,则可能会发生以下情况,其中一个线程在处理好A任务后,需要将处理结果发送给第一平台,处理好B任务时需要将处理结果发送给第二平台,导致每次发送前都需要去检测各个待执行任务的发送平台,较为繁琐,浪费各个线程的计算空间。
如上述步骤S2所述,若达到了所述预设数量,则获取各所述待执行任务的标签。其中,当当前待执行任务的数量达到了预设数量时,可以获取各个待执行任务的标签,各个待执行任务在分配时,会有对应的标签以便于任务的执行,因此其中也会有各个任务的种类,处理方式等信息,各个任务会携带有对应的标签,因此,可以从各个待执行任务中获取到对应的标签。
如上述步骤S3所述,读取各所述待执行任务的标签中的标签信息。其中,读取的方式各个线程中会预设有对应的方式,可以基于此进行获取,具体地,各个线程为了可以处理好对应的待执行任务,需要获取到各个待执行任务的执行方式,以便于执行对应的执行任务,即各个线程仍需要获取到各个待执行任务的标签。
如上述步骤S4所述,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果。由于不确定各类待执行任务的数目,因此只能在平台中设置多种分类方法,即各种不同类别,然后按照各个分配方案以此将各个任务进行模拟分配,得到各个分配方案所对应的模拟分配结果。例如标签信息中含有的类别信息为公司名称,任务名称,以及任务时间,则多个不同类别可以是基于公司名称进行划分的方案,可以是基于不同任务名称划分的不同类别,以及任务时间划分的不同类别,即对不同的类别设置对应的不同类别。
如上述步骤S5所述,获取各所述模拟分配结果中各个线程的预测执行时间。其中该预测执行时间可以是根据各个线程中所分配到的任务进行估算,也可以根据各个待执行任务的预计执行时间进行累加,得到对应的预测执行时间。
如上述步骤S6所述,计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。其中,计算离散度的方式可以是通过计算各个线程的预测执行时间的方差,也可以直接以预测时间最长的时间减去预测时间最短的时间,作为离散度。由于各个不同类别都是基于类别进行设定的分配方案,因此各个线程得到的处理结果为相对应类别的处理结果,无需对数据再进行识别,汇总,可以直接根据处理结果进行数据汇总,从而节省了汇总的时间。
在一个实施例中,所述获取各所述模拟分配结果中各个线程的预测执行时间的步骤S5,包括:
S501:为各个线程设置对应的消息队列;
S502:基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
S503:获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
实现了对各个预测执行时间的获取。
如上述步骤S501-S502所述,为每个不同类别中各个线程设置对应的消息队列,其中,消息队列用于对各个待执行任务进行排序,各个待执行任务按照再消息队列中的顺序依次在对应的线程中执行。因此可以为各个线程设置对应的消息队列,然后通过消息队列模型接收各个不同类别中所分配的待执行任务。
如上述步骤S503所述,获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。本实施例中,可以直接将预测消息队列的长度记为对应线程的预测执行时间,由于消息队列越长,其所对应的待执行任务也就越多,因此,可以以预测消息队列的长度作为对应线程的预测执行时间。
在一个实施例中,所述计算各个所述不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的不同类别分配各所述待执行任务的步骤S6之后,还包括:
S701:获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
S702:根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
S703:判断所述最大时间差是否超过了时差预设值;
S704:若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
实现了对待执行任务的二次分配。
如上述步骤S701所述,获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合。其中预测执行时间前述已经获取,故而此处只需要将其进行调用并建立对应的时间集合即可。
如上述步骤S702所述,基于该公式ΔTmax=max(|Ti-Tj|)可以计算得到时间集合中最大时间差,需要说明的是,在计算最大时间差的同时,也可以将得到最大时间差的Ti和Tj进行标记,以便于后续对对应的两个线程进行再分配处理。
如上述步骤S703-S704所述,在判断最大时间差以及超过了时差预设值时,则可以将处理时间集合中最短的线程,在处理完毕对应的分配任务后获取并处理所述时间集合中时间最长的线程中的未处理的待执行任务进行处理,以帮助对应的预测执行时间最长的线程完成待执行任务的处理,使平台可以更快的对待执行任务进行处理,本实施例中,由于预测执行时间最短的线程已经处理好对应的执行任务,故而在帮助预测执行时间最长的线程执行未完成的待执行任务后,其对应的处理结果可以发送给对应预测执行时间最长的线程所对应的平台,也不需要增加该线程去检测各个待执行任务的发送平台。
在一个实施例中,所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤S4,包括:
S401:获取所述待执行任务标签中各类类别相对应的类别数值;
S402:获取各所述类别数值之间的最大差值;
S403:基于所述最大差值为各个线程等比例划分数值范围。
实现了对待执行任务的分配。
如上述步骤S401所述,获取不同类别中所对应的分类类别,各个不同类别分配的原则是基于对应的分类类别,例如以主题进行分类,或者以时间、处理人等方式进行分类。因此可以基于对应的不同类别获取到对应的分类类别。获取所述待执行任务标签中各类类别相对应的类别数值。由于分类类别可能事先未划定对应的数值范围,或者划定的数值范围过大,导致各个线程中有部分线程的所接收到的待执行任务数量较少。因此可以根据对应的标签中的类别数值来划定,其中类别数值是通过将标签中对应该分类类别的表示进行数字化表示,即得到对应的类别数值。当然,在一些分类类别中,其分类类别的表示即为数字,则不需要进行处理(也可以进行归一化处理,使数据进行浓缩),直接以该数字作为对应的类别数值。
如上述步骤S403所述,获取类别数值之间的最大差值。即将最大的类别数值减去最小的类别数值即可。
如上述步骤S404所述,基于所述最大差值为各个线程等比例划分数值范围,设定的方式可以是根据线程的数目,然后将最大差值除以线程的数目的值作为各个线程的范围差,根据最小的类别数值作为第一个线程的起点,依次加上范围差设定各个线程的数值范围。
在另一个实施例中,基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤S4,包括:
S411:根据所述不同类别为各个线程设定对应的任务类别;
S412:将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
S413:根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
S414:根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
实现了对待执行任务的分配。
如上述步骤S411所述,可以根据不同类别为各个线程设定对应的任务类别。即为各个线程设定类别属性,例如,将A线程设置为处理对账业务,将B线程设置为清算任务。由此可以为各个线程设定对应的任务类别。
如上述步骤S412所述,将其输入至预设的向量机中,将其输入至预设的向量机中,例如为SVM,其根据对应的不同的待执行任务以及对应的任务向量训练而成,即得到对应固定维度的任务向量。
如上述步骤S413所述,根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度。需要说明的是,向量中的yi与xi对应的是同一属性,当然每个属性的权重占比也应当是不同的,因此引入了参数si,其中参数si是通过实现训练得到的,根据i的不同,其参数si的值也不同,需要解释的是i与参数si之间并没有函数对应关系,参数si与第i个属性相关,例如对于该任务类别来说,其中一个属性的相关,则参数si也会对应大一些。
如上述步骤S414所述,然后根据各个待执行任务的匹配度将该待执行任务模拟分配在对应的线程中。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤S6之后,还包括:
S711:监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
S712:若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
S713:将分配至其他线程的待执行任务迁移至其他线程中执行。
如上述步骤S711所述,监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理。其中,监测的方式可以是通过设置对应的脚本进行监测,例如当前的监测脚本为Jmeter脚本,以此得出是否具有目标线程完成了分配的待执行任务的处理。
如上述步骤S712所述,若具有目标线程,则将处理进度最慢的线程按照预设的规则再次进行分配,其中分配的规则为将当前所具有待执行任务进行进一步的细化,例如,当前的目标线程的处理范围为0~9,则可以分为0~3,3~6以及6~9,将其中两个范围内的待执行任务模拟分配给其他线程执行。
如上述步骤S713所述,将分配至其他线程的待执行任务迁移至其他线程中执行,从而完成对待执行任务的再次分配。应当理解的是,该待执行任务迁移的其他线程优选为临近的其他线程,其实际上是为各个线程中的范围进行了重新划分。
在一个实施例中,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤S6之后,还包括:
S721:监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
S722:获取所述暂时线程对对应的待执行任务的处理结果;
S723:在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
实现了对数据的汇总。
如上述步骤S721所述,监测各个线程是否已经处理完毕对应的待执行任务,监测的方式仍可以通过Jmeter脚本进行监测,将处理完毕后的线程记为暂时线程。
如上述步骤S722所述,获取所述暂时线程对对应的待执行任务的处理结果,各个线程的处理结果会汇总到对应各个线程所对应的存储位置处,因此从对应的存储位置处即可获取处理结果。
如上述步骤S723所述,在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。通过多线程生成文件,使对应的平台可以实时获取到处理进度,以及部分处理结果。
参照图2,本发明还提供了一种多线程任务分配装置,包括:
检测模块10,用于检测当前待执行任务的数量是否达到了预设数量;
标签获取模块20,用于若达到了所述预设数量,则获取各所述待执行任务的标签;
读取模块30,用于读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
分配模块40,用于基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
时间获取模块50,用于获取各所述模拟分配结果中各个线程的预测执行时间;
计算模块60,用于计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务。
在一个实施例中,时间获取模块50,包括:
消息队列设置子模块,用于为各个线程设置对应的消息队列;
任务接收子模块,用于基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
预测长度获取子模块,用于获取各所述预测消息队列的预测长度,并将所述消息队列的长度记为对应线程的预测执行时间。
在一个实施例中,多线程任务分配装置,还包括:
预测执行时间获取模块,用于获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
时间差计算模块,用于根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
时间差判断模块,用于判断所述最大时间差是否超过了时差预设值;
待执行任务获取模块,用于若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务。
在一个实施例中,分配模块40,包括:
分类类别获取子模块,用于
类别数值获取子模块,用于获取所述待执行任务标签中各类类别相对应的类别数值;
最大差值获取子模块,用于获取各所述类别数值之间的最大差值;
数值范围设定子模块,用于基于所述最大差值为各个线程等比例划分数值范围。
在一个实施例中,分配模块40,包括:
任务类别设定子模块,用于根据所述不同类别为各个线程设定对应的任务类别;
任务输入子模块,用于将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
匹配度计算子模块,用于根据公式 计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,...,yi,...,yn),si表示第i维数据所对应的权重,p为预设的参数;
模拟分配子模块,用于根据所述匹配度将各个待执行任务模拟分配在对应的线程中。
在一个实施例中,多线程任务分配装置,还包括:
处理进度监测模块,用于监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
再次分配模块,用于若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
迁移模块,用于将分配至其他线程的待执行任务迁移至其他线程中执行。
在一个实施例中,多线程任务分配装置,还包括:
待执行任务监测模块,用于监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
处理结果获取模块,用于获取所述暂时线程对应的待执行任务的处理结果;
文件生成模块,用于在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
本发明的有益效果:根据各个待执行任务的标签中的标签信息,将各个待执行任务模拟分配在各个线程中,从而得到各个任务的模拟分配结果,然后根据各个预测执行时间计算离散度,从而选取到离散度最小的不同类别分配待执行任务,从而在保证处理效率的同时,还可以解决现有的分布式处理方法得到的处理结果分布在各个线程中,难以进行数据汇总的问题。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各种不同类别等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的多线程任务分配方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一实施例所述的多线程任务分配方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
区块链是分配式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (8)

1.一种多线程任务分配方法,其特征在于,包括:
检测当前待执行任务的数量是否达到了预设数量;
若达到了所述预设数量,则获取各所述待执行任务的标签;
读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
获取各所述模拟分配结果中各个线程的预测执行时间;
计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务;
所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
根据不同类别为各个线程设定对应的任务类别;
将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,…,yi,…,yn),si表示第i维数据所对应的权重,p为预设的参数;
根据所述匹配度将各个待执行任务模拟分配在对应的线程中;
所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
判断所述最大时间差是否超过了时差预设值;
若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务,并将对应的处理结果发送给对应预测执行时间最长的线程所对应的平台。
2.如权利要求1所述的多线程任务分配方法,其特征在于,所述获取各所述模拟分配结果中各个线程的预测执行时间的步骤,包括:
为各个线程设置对应的消息队列;
基于各所述消息队列模拟接收对应线程的所述待执行任务,得到各个所述消息队列接收完成后的预测消息队列;
获取各所述预测消息队列的预测长度,并将所述预测消息队列的预测长度记为对应线程的预测执行时间。
3.如权利要求1所述的多线程任务分配方法,其特征在于,所述基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果的步骤,包括:
获取所述待执行任务标签中各类类别相对应的类别数值;
获取各所述类别数值之间的最大差值;
基于所述最大差值为各个线程等比例划分数值范围。
4.如权利要求1所述的多线程任务分配方法,其特征在于,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程的处理进度,并判断各线程中是否具有目标线程完成了分配的待执行任务的处理;
若具有所述目标线程,则将处理进度最慢的线程中未处理的待执行任务按照预设的规则再次进行分配;
将分配至其他线程的待执行任务迁移至其他线程中执行。
5.如权利要求1所述的多线程任务分配方法,其特征在于,所述计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务的步骤之后,还包括:
监测各个线程是否已经处理完毕各自分配后的待执行任务,并将处理完毕后的线程记为暂时线程;
获取所述暂时线程对应的待执行任务的处理结果;
在所述暂时线程中,基于对应不同类别的规则以及所述处理结果生成对应的文件。
6.一种多线程任务分配装置,其特征在于,包括:
检测模块,用于检测当前待执行任务的数量是否达到了预设数量;
标签获取模块,用于若达到了所述预设数量,则获取各所述待执行任务的标签;
读取模块,用于读取各所述待执行任务的标签中的标签信息;其中,所述标签信息包括不同类别的类别信息;
分配模块,用于基于所述标签信息按照类别将各待执行任务模拟分配在各个线程中,得到各类别分别对应的模拟分配结果;
时间获取模块,用于获取各所述模拟分配结果中各个线程的预测执行时间;
计算模块,用于计算各个不同类别中,各所述线程的预测执行时间之间的离散度,并选取离散度最小的模拟分配结果对应的类别分配各所述待执行任务;
所述分配模块,包括:
任务类别设定子模块,用于根据所述不同类别为各个线程设定对应的任务类别;
任务输入子模块,用于将各所述待执行任务输入至预设的向量机中,得到对应固定维度的任务向量X=(x1,x2,…,xi,…,xn);
匹配度计算子模块,用于根据公式计算所述任务向量与每个任务类别对应的类别向量之间的匹配度;其中,Y为类别向量,Y=(y1,y2,…,yi,…,yn),si表示第i维数据所对应的权重,p为预设的参数;
模拟分配子模块,用于根据所述匹配度将各个待执行任务模拟分配在对应的线程中;
所述多线程任务分配装置还包括:
预测执行时间获取模块,用于获取所选择的不同类别中各个线程的预测执行时间,并根据各个预测执行时间建立时间集合;
时间差计算模块,用于根据公式ΔTmax=max(|Ti-Tj|)计算所述时间集合中最大时间差;其中,所述ΔTmax表示所述最大时间差,Ti和Tj分别表示所述时间集合中任意两个不同的线程所对应的预测执行时间,max(|Ti-Tj|)表示|Ti-Tj|计算得到的最大值;
时间差判断模块,用于判断所述最大时间差是否超过了时差预设值;
待执行任务获取模块,用于若超过了时差预设值,则将所述预测执行时间最短的线程在处理完毕对应的分配任务后,获取并处理所述预测执行时间最长的线程中的未处理的待执行任务,并将对应的处理结果发送给对应预测执行时间最长的线程所对应的平台。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202110697926.0A 2021-06-23 2021-06-23 多线程任务分配方法、装置、设备及存储介质 Active CN113434310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110697926.0A CN113434310B (zh) 2021-06-23 2021-06-23 多线程任务分配方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110697926.0A CN113434310B (zh) 2021-06-23 2021-06-23 多线程任务分配方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113434310A CN113434310A (zh) 2021-09-24
CN113434310B true CN113434310B (zh) 2024-03-22

Family

ID=77753464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110697926.0A Active CN113434310B (zh) 2021-06-23 2021-06-23 多线程任务分配方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113434310B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415691B (zh) * 2022-01-28 2024-04-02 中银金融科技(苏州)有限公司 一种机器人调度方法、调度平台及系统
CN115378839B (zh) * 2022-08-26 2023-12-12 北京百度网讯科技有限公司 采集任务的部署方法及相关设备
CN116860422A (zh) * 2023-09-05 2023-10-10 北京世冠金洋科技发展有限公司 一种线程分配方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015108878A (ja) * 2013-12-03 2015-06-11 日本電気株式会社 割当判定装置、制御方法、及びプログラム
CN106776008A (zh) * 2016-11-23 2017-05-31 福建六壬网安股份有限公司 一种基于zookeeper实现负载均衡的方法及系统
CN107357652A (zh) * 2017-06-16 2017-11-17 北京邮电大学 一种基于分段排序及标准差调整因子的云计算任务调度方法
WO2018121738A1 (zh) * 2016-12-30 2018-07-05 北京奇虎科技有限公司 流数据任务的处理方法和装置
CN111291930A (zh) * 2020-01-21 2020-06-16 北京猎户星空科技有限公司 任务分配方法、装置以及计算设备、存储介质
CN111311005A (zh) * 2020-02-21 2020-06-19 江苏苏宁物流有限公司 配送路径的规划方法、装置、介质及计算机设备
CN111401609A (zh) * 2020-03-04 2020-07-10 平安科技(深圳)有限公司 车流量时间序列的预测方法及预测装置
CN112036648A (zh) * 2020-09-02 2020-12-04 中国平安财产保险股份有限公司 基于模型的任务分配方法、装置、计算机设备和存储介质
CN112364163A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 日志的缓存方法、装置以及计算机设备
CN112506669A (zh) * 2021-01-29 2021-03-16 浙江大华技术股份有限公司 任务分配方法和装置、存储介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601483B2 (en) * 2011-03-22 2013-12-03 International Business Machines Corporation Forecasting based service for virtual machine reassignment in computing environment

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015108878A (ja) * 2013-12-03 2015-06-11 日本電気株式会社 割当判定装置、制御方法、及びプログラム
CN106776008A (zh) * 2016-11-23 2017-05-31 福建六壬网安股份有限公司 一种基于zookeeper实现负载均衡的方法及系统
WO2018121738A1 (zh) * 2016-12-30 2018-07-05 北京奇虎科技有限公司 流数据任务的处理方法和装置
CN107357652A (zh) * 2017-06-16 2017-11-17 北京邮电大学 一种基于分段排序及标准差调整因子的云计算任务调度方法
CN111291930A (zh) * 2020-01-21 2020-06-16 北京猎户星空科技有限公司 任务分配方法、装置以及计算设备、存储介质
CN111311005A (zh) * 2020-02-21 2020-06-19 江苏苏宁物流有限公司 配送路径的规划方法、装置、介质及计算机设备
CN111401609A (zh) * 2020-03-04 2020-07-10 平安科技(深圳)有限公司 车流量时间序列的预测方法及预测装置
CN112036648A (zh) * 2020-09-02 2020-12-04 中国平安财产保险股份有限公司 基于模型的任务分配方法、装置、计算机设备和存储介质
CN112364163A (zh) * 2020-11-10 2021-02-12 平安普惠企业管理有限公司 日志的缓存方法、装置以及计算机设备
CN112506669A (zh) * 2021-01-29 2021-03-16 浙江大华技术股份有限公司 任务分配方法和装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN113434310A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CN113434310B (zh) 多线程任务分配方法、装置、设备及存储介质
US11531780B2 (en) Deep learning-based identity fraud detection
CN112036648A (zh) 基于模型的任务分配方法、装置、计算机设备和存储介质
US11797890B2 (en) Performance manager to autonomously evaluate replacement algorithms
CN112527630A (zh) 测试用例生成方法、装置、计算机设备和存储介质
CN112348321A (zh) 风险用户的识别方法、装置及电子设备
WO2019215703A1 (en) Method and system for defining roles in an identity and access management system
CN111506710B (zh) 基于谣言预测模型的信息发送方法、装置和计算机设备
US10824956B1 (en) System and method for price estimation of reports before execution in analytics
CN114186275A (zh) 隐私保护方法、装置、计算机设备及存储介质
CN113672654B (zh) 数据查询方法、装置、计算机设备和存储介质
CN112085019A (zh) 字符识别模型生成系统、方法、装置和计算机设备
Hallman et al. Return on Cybersecurity Investment in Operational Technology Systems: Quantifying the Value That Cybersecurity Technologies Provide after Integration.
CN113505805A (zh) 样本数据闭环生成方法、装置、设备及存储介质
CN113919953A (zh) 跨链生成智能合约的实现方法、装置、设备以及存储介质
CN114416875A (zh) 基于区块链的任务处理方法、装置、设备以及存储介质
CN114398183A (zh) 基于区块链的任务分配方法、装置、设备以及存储介质
CN113570286A (zh) 基于人工智能的资源分配方法、装置、电子设备及介质
AU2021218217A1 (en) Systems and methods for preventative monitoring using AI learning of outcomes and responses from previous experience.
CN113822412A (zh) 一种图节点标注方法、装置、设备及存储介质
Jambak et al. The process mining method approach to analyze users’ behavior of internet in the Local Area Network of Sriwijaya University
CN113706031A (zh) 基于区块链的均衡分案方法、装置、设备以及存储介质
JP6547341B2 (ja) 情報処理装置、方法及びプログラム
US20230377038A1 (en) Early network growth warning system and method
CN112632634B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240218

Address after: 518000 New Era Plaza (Phase II) 2103, No. 5 Taizi Road, Nanshan District, Shenzhen, Guangdong Province, China Merchants Street, Shuiwan Community, Nanshan District, Shenzhen

Applicant after: Shenzhen Borui Crystal Core Technology Co.,Ltd.

Country or region after: China

Address before: 200000 floor 15, No. 1333, Lujiazui Ring Road, Shanghai pilot Free Trade Zone

Applicant before: Weikun (Shanghai) Technology Service Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant