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

一种任务处理方法、装置、设备、存储介质及程序产品与流程

2022-12-19 23:29:49 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,特别涉及一种任务处理方法、装置、设备、存储介质及程序产品。


背景技术:

2.随着计算机应用技术的高速发展,计算机设备大多采用线程池进行任务处理。线程池是一种池化技术,能充分发挥多核中央处理器(central processing unit,cpu)的性能,通过线程池中多线程并行处理的方式充分利用计算机设备资源,来提高任务处理效率,提高线程的可管理性等。常用于需要快速响应用户请求或者快速处理批量任务等业务场景下。
3.当前,对于单线程任务的执行,可以保证执行的顺序按照任务的写入顺序。但是,当通过多线程去执行多个任务时,由于每一个时刻cpu只能执行一项任务,而操作系统分配给每个线程的执行时间可能不一致,因此就不能保证最终执行任务的顺序与任务写入的顺序一致。
4.例如,假设创建一个包含4个线程的线程池,操作系统不断地向4个线程随机地分配任务。当多个任务具有一定的执行顺序时,由于操作系统可能是随机将所述多个任务分配到线程池中的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.本发明另一方面提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的任务处理方法。
32.本发明另一方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的任务处理方法。
33.本发明另一方面提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述的任务处理方法的步骤。
34.由于上述技术方案,本发明具有以下有益效果:
35.根据本发明实施例的任务处理方法,通过自定义至少一个目标属性,根据待执行
任务对应的所述至少一个目标属性的属性信息,确定执行所述待执行任务的目标线程,达到具有相同属性的任务保证同一个线程执行的目的,能够实现在线程池中,具有相同属性的多线程任务的有序执行,从而满足多线程任务按顺序操作的需求,保证任务的正常执行。并且,所述目标属性还可以根据实际的业务需求进行实时地调整,以更好地适应用户的实际需求。
附图说明
36.为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
37.图1是本发明一个实施例提供的实施环境示意图;
38.图2是本发明一个实施例提供的任务处理方法的流程图;
39.图3是本发明另一个实施例提供的任务处理方法的流程图;
40.图4是本发明一个实施例提供的线程分配示意图;
41.图5是本发明一个实施例提供的任务处理装置的结构示意图;
42.图6是本发明一个实施例提供的电子设备的结构示意图。
具体实施方式
43.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
45.为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。本发明实施例的技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
46.首先,本发明实施例对下述概念进行解释:
47.哈希(hash)运算:是指将任意长度的输入(又叫做预映射,pre-image)通过散列算法变换成固定长度的输出,该输出就是哈希值。
48.线程池:是一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了
在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。线程池中的可用线程数量取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。例如,线程数量一般取处理器数量加2比较合适,线程数过多会导致额外的线程切换开销。
49.取模运算:取模运算的特点是:取模的值,必定会在模的范围内。所以可以通过引用该特性,使元素路由算法不超出边界,并有规则存放。取模运算过程可以首先确定模(范围),然后对元素取模,使元素有规则的落入模的范围内容器中,如hashmap、数据库分表、分布式节点路由算法等。例如5mod 3=2中,模为3,2为取模的值。其中,“模”是指一个计量系统的计数范围;如时钟,12个整点为计算范围,则模为12;计算机也是一个计量机器,模为32位或者64位。
50.参考说明书附图1,其示出了本发明一个实施例提供的任务处理方法的实施环境示意图。需要注意的是,图1所示仅为可以应用本发明实施例的实施环境的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。如图1所示,该实施环境可以至少包括任务处理平台110和至少一个应用方120。所述任务处理平台110和各个应用方120可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例对此不做限制。
51.所述任务处理平台110和所述至少一个应用方120可以包括智能手机、平板电脑、笔记本电脑、台式计算机、数字助理、智能音箱、智能可穿戴设备、车载终端、服务器等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等,但并不局限于此。所述任务处理平台110和所述至少一个应用方120上运行的操作系统可以包括但不限于安卓系统、ios系统、linux系统、windows系统等。
52.本发明实施例中,所述至少一个应用方120可以通过接口向所述任务处理平台110发送待执行任务并提交至目标线程池,所述任务处理平台110可以采用本发明实施例提供的任务处理方法为所述待执行任务分配目标线程,以使得所述目标线程执行所述待执行任务,从而保证有特定需求的任务的有序执行。
53.在实际应用中,所述应用方120可以为银行等金融机构的各个网点,所述任务处理平台110可以为对应的网点管理平台,所述待处理任务可以为各个网点的数据加工、数据清洗和数据分析等任务。
54.在实际应用中,所述应用方120还可以为物联设备,所述任务处理平台110可以为物联设备管理平台,所述待处理任务可以为各个物联设备的设备激活、设备签到和预签到等任务。
55.需要说明的是,图1仅仅是一种示例。本领域技术人员可以理解,虽然图1中仅示出了2个应用方120,但并不构成对本发明实施例的限定,根据实际需要,可以具有任意数目的应用方120。
56.参考说明书附图2,其示出了本发明一个实施例提供的一种任务处理方法的流程,该方法可以应用于图1中的任务处理平台中,具体的如图2所示,所述方法可以包括以下步骤:
57.s210:接收向目标线程池提交的待执行任务。
58.本发明实施例中,所述任务处理平台可以预先创建目标线程池,并确定所述目标
线程池中的线程数量。其中,创建线程池的方法可以参考现有技术,本发明实施例在此不再赘述,创建的目标线程池的线程数量可以根据实际需要进行设置,本发明实施例对此也不作限制。
59.本发明实施例中,各个应用方可以通过接口向所述目标线程池提交待执行的任务,所述任务处理平台可以接收到所述待执行任务,并分配执行所述待执行任务的目标线程。
60.s220:获取所述待执行任务对应的至少一个目标属性的属性信息,所述目标属性为自定义的任务属性。
61.本发明实施例中,用户可以根据实际需要预先配置一个或者多个任务属性,作为目标属性,以所述目标属性的属性信息作为分配线程的标准,可以将具有相同目标属性的属性信息的任务分配至同一个线程执行,从而保证具有一定操作顺序的任务的有序执行。
62.具体地,所述目标属性可以包括但不限于设备标识、设备类型、网点标识、网点类型、任务标识或任务类型等任务属性。
63.在一个可能的实施例中,执行所述步骤s220之前,所述方法还可以包括:
64.确定当前的任务配置策略,所述任务配置策略为自定义的任务配置策略;
65.对所述任务配置策略进行分析,确定所述任务配置策略对应的至少一个任务属性,作为目标属性。
66.具体地,用户可以根据实际需要设置对应的任务配置策略,所述任务配置策略中可以包括一个或多个作为分配标准的任务属性(即目标属性)。所述任务处理平台可以对当前的任务配置策略进行分析,得到对应的一个或多个任务属性,作为目标属性。
67.示例性地,用户可以设置根据设备、网点或者任务类型进行任务配置的策略,即同一设备的任务、同一网点的任务或者同一类型的任务保证同一个线程执行(或顺序执行)。所述任务处理平台对用户设置的任务配置策略进行分析后,可以将设备标识、网点标识或者任务类型作为目标属性。其中,所述设备标识和所述网点标识均具有全平台唯一标识的特性,即不同的设备具有不同的设备标识,不同的网点具有不同的网点标识。
68.示例性地,用户还可以设置根据网点和任务类型进行任务配置的策略,即同一网点的同一类型的任务保证同一个线程执行(或顺序执行),同一网点的不同类型的任务或者不同网点的同一类型的任务则无需同一个线程执行(或顺序执行)。所述任务处理平台对用户设置的任务配置策略进行分析后,可以将网点标识和任务类型作为目标属性。
69.需要说明的是,上述采用一个或者两个任务属性作为目标属性的任务配置策略仅为示例,并不构成对本发明实施例的限定,根据实际需要,所述任务配置策略可以包括任意数目的任务属性。并且,本发明实施例中进行任务配置的策略可以根据实际的业务需求进行实时地调整,以更好地适应用户的实际需求。
70.可以理解,本发明实施例通过用户自定义目标属性,能够实现根据用户指定的某个属性,来指定执行任务的线程,并且达到相同属性保证同一个线程执行的目的。
71.本发明实施例中,当获取到所述待执行任务对应的至少一个目标属性的属性信息时,可以执行步骤s230,以确定执行所述待执行任务的目标线程;当未获取到所述待执行任务对应的至少一个目标属性的属性信息时,可以由目标线程池本身的策略分配执行所述待执行任务的线程。
72.其中,所述目标线程池本身的策略可以根据实际需要进行设置,例如可以设置为随机为所述待执行任务分配所述目标线程池的一个线程,或者可以采用负载均衡原则为所述待执行任务分配所述目标线程池的一个线程等,本发明实施例对此不作限定。
73.在一个可能的实施例中,所述方法还可以包括:
74.分别判断所述至少一个目标属性中的各个目标属性的属性信息是否满足对应的预设属性条件;
75.当所述至少一个目标属性中的所有目标属性的属性信息均满足对应的预设属性条件时,执行基于所述至少一个目标属性的属性信息,从所述目标线程池中确定执行所述待执行任务的目标线程的步骤。
76.在实际应用中,由于用户自定义的配置任务的策略,可能涉及平台全量的任务,也可能仅涉及平台的部分任务。因此,在获取到待执行任务的至少一个目标属性的属性信息后,还可以判断所述待执行任务是否涉及用户指定的任务。当判定所述待执行任务涉及用户指定的任务时,可以采用本发明实施例提供的方法,基于所述至少一个目标属性的属性信息为所述待执行任务分配线程;当判定所述待执行任务不涉及用户指定的任务时,可以由目标线程池本身的策略分配执行任务的线程。
77.具体地,用户在根据实际需要设置对应的任务配置策略时,还可以在所述任务配置策略中指定所述一个或多个作为分配标准的任务属性(即目标属性)对应的目标属性值集合,所述目标属性值集合即可用于限定用户指定的任务。所述任务处理平台对用户设置的任务配置策略进行分析后,不仅可以得到一个或多个目标属性,还可以得到各个目标属性对应的目标属性值集合。
78.具体地,所述任务处理平台在获取到所述待执行任务对应的至少一个目标属性的属性信息后,可以分别判断各个目标属性的属性信息是否属于对应的目标属性值集合,若属于,则判定所述目标属性的属性信息满足对应的预设属性条件;否则,判定所述目标属性的属性信息不满足对应的预设属性条件。
79.示例性地,用户可以设置对z类型和w类型设备的任务进行任务配置的策略,即z类型和w类型设备的任务保证同一个线程执行(或顺序执行),其它类型设备的任务则无需同一个线程执行(或顺序执行)。所述任务处理平台对用户设置的任务配置策略进行分析后,可以将设备类型作为目标属性,设备类型对应的目标属性值集合为{设备类型z、设备类型w}。
80.相应地,所述任务处理平台在获取到所述待执行任务对应的设备类型信息后,可以判断所述设备类型信息是否为设备类型z或者设备类型w。若所述设备类型信息为设备类型z或者为设备类型w,则判定所述设备类型信息满足对应的预设属性条件,可以采用本发明实施例提供的方法,基于所述至少一个目标属性的属性信息为所述待执行任务分配线程。
81.示例性地,用户可以设置对网点x的设备a进行任务配置的策略,即网点x的设备a的任务保证同一个线程执行(或顺序执行),其它网点或者网点x的其它设备的任务则无需同一个线程执行(或顺序执行)。所述任务处理平台对用户设置的任务配置策略进行分析后,可以将网点标识和设备标识作为目标属性,网点标识对应的目标属性值集合为{网点x的标识信息},设备标识对应的目标属性值集合为{设备a的标识信息}。
82.相应地,所述任务处理平台在获取到所述待执行任务对应的网点标识的第一标识信息和设备标识的第二标识信息后,可以判断所述第一标识信息是否与网点x的标识信息相同,判断所述第二标识信息是否与设备a的标识信息相同。若均相同,则判定所述第一标识信息和所述第二标识信息均满足对应的预设属性条件,可以采用本发明实施例提供的方法,基于所述至少一个目标属性的属性信息为所述待执行任务分配线程。
83.需要说明的是,当用户未指定某个目标属性对应的目标属性值集合的情况下,可以直接判定所述目标属性的属性信息满足对应的预设属性条件。上述采用一个或者两个任务属性作为目标属性的任务配置策略仅为示例,并不构成对本发明实施例的限定,根据实际需要,所述任务配置策略可以包括任意数目的任务属性。并且,本发明实施例中进行任务配置的策略可以根据实际的业务需求进行实时地调整,以更好地适应用户的需求。
84.可以理解,本发明实施例通过用户自定义目标属性及其对应的目标属性值集合,在获取到待执行任务对应的目标属性的属性信息后,基于所述目标属性值集合,判断所述属性信息是否满足对应的预设属性条件,在判定满足条件的情况下,基于所述属性信息确定处理任务的线程,能够实现根据实际的业务需求,对多线程任务中有特定需求的任务(可以为部分或全部任务)的有序执行。
85.在一个可能的实施例中,所述方法还可以包括:
86.当所述至少一个目标属性中的任意一个目标属性的属性信息不满足对应的预设属性条件时,利用预设线程分配策略从所述目标线程池中为所述待执行任务分配一个线程,作为目标线程;
87.将所述待执行任务分配至所述目标线程,以使得所述目标线程执行所述待执行任务。
88.具体地,当所述任务处理平台判定存在一个或者多个目标属性的属性信息不满足对应的预设属性条件时,确定所述待处理任务不涉及用户指定的任务,即可以由目标线程池本身的策略分配执行任务的线程。
89.可以理解,本发明实施例中仅对多线程任务中有特定需求的任务,指定执行任务的线程,以保证其执行顺序,对于其它任务则由目标线程池本身的策略分配执行任务的线程,无需关注其执行顺序,能够一定程度上保留线程池的自身优势,从而保证线程池处理任务的效率。
90.s230:基于所述至少一个目标属性的属性信息,从所述目标线程池中确定执行所述待执行任务的目标线程。
91.本发明实施例中,可以根据所述至少一个目标属性的属性信息从所述目标线程池中为所述待执行任务分配一个目标线程,并将具有相同属性信息的任务分配至同一个线程执行,从而保证具有一定操作顺序的任务的有序执行。而对于具有不同属性信息的任务可以分配至同一个线程执行,也可以分配至不同的线程执行。
92.在一个可能的实施例中,结合参考说明书附图3,所述基于所述至少一个目标属性的属性信息,从所述目标线程池中确定执行所述待执行任务的目标线程可以包括:
93.s231:对所述至少一个目标属性的属性信息进行哈希运算,得到对应的哈希值。
94.具体地,当获取的是一个目标属性的属性信息时,可以直接对所述属性信息做哈希运算,得到对应的哈希值;当获取的是多个目标属性的属性信息时,可以对所述多个属性
信息进行哈希预算,得到对应的哈希值。其中,哈希运算的具体内容可以参考现有技术,本发明实施例在此不再赘述。
95.s232:确定所述目标线程池中的线程数量。
96.具体地,在创建所述目标线程池时,可以记录所述目标线程池中的线程数量。
97.s233:对所述哈希值以所述线程数量为模数进行取模运算,得到取模值。
98.具体地,将所述哈希值以所述线程数量为模数进行取模运算,可以得到在模数范围内一个固定的整数值。示例性地,假设所述线程数量为n,将所述哈希值以n为模数进行取模运算,可以得到在1-n之间的一个值。
99.s234:从所述目标线程池中确定与所述取模值对应的线程,作为执行所述待执行任务的目标线程。
100.具体地,可以预先建立所述目标线程池中各个线程与各个取模值的对应关系,当确定所述取模值后,即可根据所述对应关系确定与所述取模值对应的线程。通过这种方式可以将具有相同哈希值/取模值的任务,均分配至所述目标线程池中的同一线程。
101.示例性地,如图4所示,可以预先将所述目标线程池中各个线程进行排序,得到线程1,线程2,

,线程n(其中n为目标线程池中的线程数量)。当进行取模运算得到取模值后,可以将序号与所述取模值相同的线程作为执行所述待执行任务的目标线程。如取模值为1,则确定线程1为目标线程;取模值为n-1,则确定线程n-1为目标线程。
102.在实际应用中,所述步骤s230可以由“线程调度器”来执行。由于具有相同属性信息的任务做hash运算的运算结果数值相同,分配的线程池中执行该任务对应的处理线程也相同,从而可以实现具有相同属性信息的任务,可以按照任务的提交顺序执行。
103.可以理解,本发明实施例通过引入至少一个目标属性的属性信息做hash运算后取模,然后将该任务分配到取模值对应的线程,实现了特定类型的任务可指定对应执行的线程,保障了有特定需求的任务,均可在线程池有序执行,同时保证了数据的完整性。
104.s240:将所述待执行任务分配至所述目标线程,以使得所述目标线程执行所述待执行任务。
105.本发明实施例中,所述目标线程可以顺序执行分配的待执行任务,即先分配的任务先执行,后分配的任务后执行,从而保证各个任务的正常执行,并得到执行结果数据。
106.下面结合具体应用例对任务处理流程进行示例性说明。
107.首先以物联设备管理平台为例进行说明,物联设备管理平台的设备注册流程可以包括激活、签到、预签到等,可见设备激活任务、设备签到任务和设备预签到任务需要有序执行。用户可以预先设置根据设备标识进行任务配置的策略,即自定义的目标属性可以为设备标识。
108.当物联设备管理平台接收到各个物联设备发送的待执行任务(包括设备激活任务、设备签到任务和设备预签到任务等)时,可以获取对应的设备标识信息,并通过“线程调度器”对所述设备标识信息进行哈希运算,将得到的哈希值以目标线程池中的线程数量为模数进行取模运算,根据得到的取模值确定对应的执行线程。
109.假设对应设备标识信息为a的待执行任务,经哈希运算和取模运算后均确定由线程1处理,这样,由物联设备a发送的设备激活任务、设备签到任务和设备预签到任务等,均会指定由线程1处理。由于物联设备a是顺序地发送设备激活任务、设备签到任务和设备预
签到任务至所述物联设备管理平台的,因此线程1就会按照任务的写入顺序有序地执行物联设备a的各个任务。从而实现对于标识为a的物联设备,先执行设备激活任务,再执行设备签到任务、设备预签到任务等,保证了任务的先后执行顺序。
110.下面以网点管理平台为例进行说明,网点管理平台可以对各个网点的数据进行管理。假设各个网点中均包括多个设备,各个设备均可以向所述网点管理平台发送待执行任务。
111.假设当前需要对部分网点中部分设备发送的任务进行有序执行,则用户可以设置对部分网点(例如网点x和网点y)中部分设备(例如网点x和网点y中设备类型为z的设备)进行任务配置的策略,即自定义的目标属性可以为网点标识和设备类型。
112.所述网点管理平台接收到各个网点中各个设备发送的待执行任务时,可以获取对应的网点标识信息和设备类型信息,并判断所述网点标识信息是否为x或者y,以及判断所述设备类型信息是否为z,当所述待执行任务对应的网点标识信息为x或者y,并且设备类型信息为z的情况下,通过“线程调度器”对所述网点标识信息和设备类型信息一起进行哈希运算,将得到的哈希值以目标线程池中的线程数量为模数进行取模运算,根据得到的取模值确定对应的执行线程。
113.假设对应网点标识信息为x和设备类型信息为z的待执行任务,经哈希运算和取模运算后均确定由线程2处理,这样,由网点x中的z类型的设备发送的各个任务,均会指定由线程2处理。线程2会按照任务的写入顺序有序地执行该类设备的各个任务,从而实现对于网点x中的z类型的设备的各个任务的的先后执行顺序。
114.当所述待执行任务对应的网点标识信息不为x也不为y,或者设备类型信息不为z的情况下,则该任务可以由“线程调度器”忽略/丢弃,由目标线程池本身的策略分配执行任务的线程。
115.综上所述,根据本发明实施例的任务处理方法,通过自定义至少一个目标属性,根据待执行任务对应的所述至少一个目标属性的属性信息,确定执行所述待执行任务的目标线程,达到具有相同属性的任务保证同一个线程执行的目的,能够实现在线程池中,具有相同属性的多线程任务的有序执行,从而满足多任务按顺序操作的需求,保证任务的正常执行。
116.另外,由于具有相同属性的任务均分配至同一个线程执行,因此该类任务的执行记录、日志等信息,均可在对应的线程中查询,而不用在多线程中筛选,提高了生产事件/问题的定位效率。
117.参考说明书附图5,其示出了本发明一个实施例提供的一种任务处理装置500的结构。如图5所示,所述装置500可以包括:
118.任务接收模块510,用于接收向目标线程池提交的待执行任务;
119.属性获取模块520,用于获取所述待执行任务对应的至少一个目标属性的属性信息,所述目标属性为自定义的任务属性;
120.线程确定模块530,用于基于所述至少一个目标属性的属性信息,从所述目标线程池中确定执行所述待执行任务的目标线程;
121.任务分配模块540,用于将所述待执行任务分配至所述目标线程,以使得所述目标线程执行所述待执行任务。
122.在一个可能的实施例中,所述装置500还可以包括:
123.配置策略确定模块,用于确定当前的任务配置策略,所述任务配置策略为自定义的任务配置策略;
124.分析模块,用于对所述任务配置策略进行分析,确定所述任务配置策略对应的至少一个任务属性,作为目标属性。
125.在一个可能的实施例中,所述装置500还可以包括:
126.判断模块,用于分别判断所述至少一个目标属性中的各个目标属性的属性信息是否满足对应的预设属性条件;
127.所述线程确定模块530用于在所述至少一个目标属性中的所有目标属性的属性信息均满足对应的预设属性条件时,基于所述至少一个目标属性的属性信息,从所述目标线程池中确定执行所述待执行任务的目标线程。
128.在一个可能的实施例中,所述线程确定模块530还用于在所述至少一个目标属性中的任意一个目标属性的属性信息不满足对应的预设属性条件时,利用预设线程分配策略从所述目标线程池中为所述待执行任务分配一个线程,作为目标线程。
129.需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。
130.本发明一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的任务处理方法。
131.存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
132.结合参考说明书附图6,所示为根据本技术的一个实施例的电子设备600的框图。电子设备600可以包括一个或多个处理器602,与处理器602中的至少一个连接的系统控制逻辑608,与系统控制逻辑608连接的系统内存604,与系统控制逻辑608连接的非易失性存储器(nvm)606,以及与系统控制逻辑608连接的网络接口610。
133.处理器602可以包括一个或多个单核或多核处理器。处理器602可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任何组合。在本文的实施例中,处理器602可以被配置为执行根据如图2-图4所示的各种实施例的一个或多个实施例。
134.在一些实施例中,系统控制逻辑608可以包括任意合适的接口控制器,以向处理器602中的至少一个和/或与系统控制逻辑608通信的任意合适的设备或组件提供任意合适的接口。
135.在一些实施例中,系统控制逻辑608可以包括一个或多个存储器控制器,以提供连接到系统内存604的接口。系统内存604可以用于加载以及存储数据和/或指令。在一些实施例中设备600的内存604可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
136.nvm/存储器606可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器606可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器),cd(compact disc,光盘)驱动器,dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
137.nvm/存储器606可以包括安装在设备600的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口610通过网络访问nvm/存储606。
138.特别地,系统内存604和nvm/存储器606可以分别包括:指令620的暂时副本和永久副本。指令620可以包括:由处理器602中的至少一个执行时导致设备600实施如图2-图4所示的任务处理方法的指令。在一些实施例中,指令620、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑608,网络接口610和/或处理器602中。
139.网络接口610可以包括收发器,用于为设备600提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口610可以集成于设备600的其他组件。例如,网络接口610可以集成于处理器602的通信模块,系统内存604,nvm/存储器606,和具有指令的固件设备(未示出)中的至少一种,当处理器602中的至少一个执行所述指令时,设备600实现图2-图4所示的各种实施例的一个或多个实施例。
140.网络接口610可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口610可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
141.在一个实施例中,处理器602中的至少一个可以与用于系统控制逻辑608的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器602中的至少一个可以与用于系统控制逻辑608的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。
142.设备600可以进一步包括:输入/输出(i/o)设备612。i/o设备612可以包括用户界面,使得用户能够与设备600进行交互;外围组件接口的设计使得外围组件也能够与设备600交互。在一些实施例中,设备600还包括传感器,用于确定与设备600相关的环境条件和位置信息的至少一种。
143.在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
144.在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
145.在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,
环境光线传感器和定位单元。定位单元还可以是网络接口610的一部分或与网络接口610交互,以与定位网络的组件(例如,全球定位系统(gps)卫星)进行通信。
146.可以理解的是,本发明实施例示意的结构并不构成对电子设备600的具体限定。在本技术另一些实施例中,电子设备600可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
147.本发明一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于电子设备之中以保存用于实现一种任务处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的任务处理方法。
148.可选地,在本发明实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
149.本发明一个实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,当计算机程序产品在电子设备上运行时,该计算机程序/指令被处理器加载并执行以实现上述各种可选实施例中提供的任务处理方法的步骤。
150.计算机程序/指令可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序/指令代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
151.需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
152.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
153.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
154.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献