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

任务处理方法、装置、电子设备及机器可读存储介质与流程

2022-07-02 14:35:40 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种任务处理方法、装置、电子设备及机器可读存储介质。


背景技术:

2.目前,资源任务(简称任务)处理主要包括两种方式:
3.1、利用线程池负责任务的异步投递,以进行任务处理,其虽然通过异步多线程并发处理方式提升了任务处理速度,但无法保证任务的处理时序。
4.2、使用单队列来保证任务的时序,但无法保证任务的处理速度。在资源量提升,任务量呈多倍数增加的情况下,容易导致消息阻塞。


技术实现要素:

5.有鉴于此,本技术提供一种任务处理方法、装置、电子设备及机器可读存储介质。
6.根据本技术实施例的第一方面,提供一种任务处理方法,包括:
7.接收任务添加指令;所述任务添加指令包括待添加任务以及资源标识,所述资源标识用于唯一标识下发所述待添加任务的资源;
8.依据所述待添加任务的资源标识,将所述待添加任务添加至目标任务队列,所述目标任务队列的资源标识与所述待添加任务的资源标识一致;
9.对于任一任务队列,通过为该任务队列分配的任务执行线程执行该任务队列中到达任务执行时间的第一目标任务。
10.根据本技术实施例的第二方面,提供一种任务处理装置,包括:
11.接收单元,被配置为接收任务添加指令;所述任务添加指令包括待添加任务以及资源标识,所述资源标识用于唯一标识下发所述待添加任务的资源;
12.添加单元,被配置为依据所述待添加任务的资源标识,将所述待添加任务添加至目标任务队列,所述目标任务队列的资源标识与所述待添加任务的资源标识一致;
13.处理单元,被配置为对于任一任务队列,通过为该任务队列分配的任务执行线程执行该任务队列中到达任务执行时间的第一目标任务。
14.根据本技术实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
15.存储器,用于存放计算机程序;
16.处理器,用于执行存储器上所存放的程序时,实现第一方面提供的方法。
17.根据本技术实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的方法。
18.根据本技术实施例的第五方面,提供一种计算机程序,该计算机程序存储于计算机可读存储介质,并且当处理器执行该计算机程序时,促使处理器执行第一方面提供的方法。
19.本技术实施例的任务处理方法,通过针对资源创建任务队列,不同资源的任务添加至不同的任务队列,且通过多个任务执行线程分别处理不同任务队列中的任务,对于同一任务队列中的任务,任务执行线程按照任务的任务执行时间升序依次执行,在提高任务处理效率的同时,保证了任务处理的时序。
附图说明
20.图1是本技术实施例提供的一种任务处理方法的流程示意图;
21.图2是本技术实施例提供的一种任务处理器的设计示意图;
22.图3是本技术实施例提供的一种任务执行线程的状态示意图;
23.图4是本技术实施例提供的一种任务添加流程的示意图;
24.图5是本技术实施例提供的一种任务读取流程的示意图;
25.图6是本技术实施例提供的一种任务处理装置的结构示意图;
26.图7是本技术实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
27.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
28.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
29.为了使本领域技术人员更好地理解本技术实施例提供的技术方案,下面先对本技术实施例涉及的部分技术术语进行简单说明。
30.1、队列(queue):一种特殊的线性表,只允许在表的前端进行删除操作,而在表的后端进行插入操作,是一种操作受限制的线性表。
31.2、线程(thread):操作系统能够进行运算调度的最小单位。
32.3、线程池:一种多线程处理方式。
33.4、调度:对资源任务进行平衡合理分配,使资源任务能实时有效处理。
34.5、资源:真实存在的具体设备或虚拟定义的服务。
35.6、资源标识:资源的唯一性标识,可以用于唯一标识一个资源。
36.7、资源类型:可以包括数据源(上报数据的资源)、数据目标(存储数据的资源)以及第三方资源(数据源和数据目标之外的第三类资源)。
37.8、任务:资源的增、删、改、设置、重置、布防、撤防、订阅等操作,每个任务具备属性:资源标识、uuid(用于唯一标识一个任务)、生成时间、执行时间、重试标志、脏任务标志。
38.9、任务类型:增、删、配置、布防、撤防、订阅等操作,根据操作划分类型。
39.10、任务桶(或称为队列桶):一个任务桶包括一个任务队列,同一资源标识的任务汇集在同一个任务队列中,同时,任务桶可以设置线程id,以标识任务桶占用的线程。
40.11、任务调度:以资源类型划分线程池,以资源标识聚类资源任务于任务桶中,以
任务类型分配并行执行多线程消费任务,设置定时监测来巡检任务桶,以此实现任务调度,同时支持任务过滤处理。
41.12、任务处理器:一个资源标识对应一个任务桶,所有不同的任务桶汇集在一起的任务容器,具备任务调度属性。一个任务处理器对一个任务容器中的全部任务桶中的任务进行调度处理。
42.13.脏任务:已被消费的任务,可能正在执行、可能执行完成。
43.为了使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例中技术方案作进一步详细的说明。
44.需要说明的是,本技术实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
45.请参见图1,为本技术实施例提供的一种任务处理方法的流程示意图,如图1所示,该任务处理方法可以包括以下步骤:
46.步骤s100、接收任务添加指令;该任务添加指令包括待添加任务以及资源标识,该资源标识用于唯一标识下发待添加任务的资源。
47.步骤s110、依据待添加任务的资源标识,将待添加任务添加至目标任务队列,目标任务队列的资源标识与待添加任务的资源标识一致。
48.本技术实施例中,为了提高任务处理的效率,并保证任务处理时序,对于不同资源下发的任务,可以添加至不同的任务队列中,任务处理器可以通过多个任务执行线程分别处理不同任务队列中的任务,且对于同一任务队列中的任务,任务处理器可以通过任务执行线程按照任务的执行时间升序依次处理。
49.相应地,资源在进行任务下发的情况下,可以在任务中携带资源标识,该资源标识可以用于唯一标识下发任务的资源。
50.在需要进行任务添加(将任务添加至任务队列)的情况下,任务处理器可以依据接收到的任务添加指令中包括的资源标识,查询资源标识与该任务添加指令中包括的资源标识一致的任务队列(本文中称为目标任务队列),并将任务添加指令中包括的任务(可以称为待添加任务)添加到该目标任务队列。
51.步骤s120、对于任一任务队列,通过为该任务队列分配的任务执行线程执行该任务队列中到达任务执行时间的第一目标任务。
52.本技术实施例中,对于任一任务队列,在该任务队列中存在到达任务执行时间的任务(本文中称为第一目标任务)时,任务处理器可以通过为该任务队列分配的任务执行线程,执行该任务队列中的第一目标任务,从而,可以保证各任务队列中的任务按照任务执行时间升序依次执行,保证了任务处理的时序。
53.可见,在图1所示方法流程中,通过针对资源创建任务队列,不同资源的任务添加至不同的任务队列,且通过多个任务执行线程分别处理不同任务队列中的任务,对于同一任务队列中的任务,任务执行线程按照任务的任务执行时间升序依次执行,在提高任务处理效率的同时,保证了任务处理的时序。
54.在一些实施例中,上述依据待添加任务的资源标识,将待添加任务添加至目标任务队列,可以包括:
55.确定是否存在目标任务队列;
56.若不存在,则创建目标任务队列,并将待添加任务添加至目标任务队列;
57.若存在,则将待添加任务添加至目标任务队列;
58.本技术实施例提供的任务处理方法还可以包括:
59.对于任一任务队列,在该任务队列中不存在任务的情况下,释放该任务队列。
60.示例性的,对于任一资源标识的任务,可以在存在任务的情况下,创建对应的任务队列,并将任务添加至任务队列中;在不存在任务,且对应的任务队列已经创建的情况下,可以释放所创建的任务队列。
61.相应地,任务处理器在接收到任务添加指令的情况下,可以依据任务添加指令中包括的资源标识,确定是否存在资源标识与任务添加指令中包括的资源标识一致的任务队列(即上述目标任务队列)。
62.若任务处理器查询到目标任务队列,则可以将待添加任务添加至该目标任务队列。
63.若任务处理器未查询到目标任务队列,即目标任务队列尚未创建,或,创建之后又已被释放,则任务处理器可以创建目标任务队列,并将待添加任务添加至目标任务队列。
64.示例性的,对于任一已创建的任务队列,任务处理器在确定该任务队列中不存在任务的情况下,可以释放该任务队列,避免该任务队列在未添加任务的情况下占用存储空间。
65.在一些实施例中,上述将待添加任务添加至目标任务队列之前,还可以包括:
66.在目标任务队列中已存在生成时间早于待添加任务的生成时间的第二目标任务的情况下,依据第二目标任务的任务类型,以及,待添加任务的任务类型,对第二目标任务进行过滤。
67.示例性的,考虑到特定任务类型的任务之间会存在关联,在后执行的任务会影响在前执行任务的执行结果。
68.例如,对于同一资源下发的资源添加任务和资源删除任务,无论资源添加任务的执行结果如何,资源删除任务都能对资源添加任务的结果产生清理。
69.相应地,为了提高任务执行效率,减少内核资源消耗,对于同一资源标识的任务,可以依据任务的生成时间以及任务类型进行过滤处理,提高有效任务执行成功率。
70.任务处理器在确定了待添加任务对应的目标队列的情况下,可以确定目标任务队列中是否存在生成时间早于该待添加的生成时间的任务(本文中称为第二目标任务)。
71.在确定目标任务队列中存在生成时间早于该待添加任务的生成时间的第二目标任务的情况下,可以依据第二目标任务的任务类型,以及,待添加任务的任务类型,对第二目标任务进行过滤。
72.例如,待添加任务为资源删除任务,则在将该待添加任务添加到目标任务队列之前,可以将该目标任务队列中生成时间早于该待添加任务的生成时间的资源添加任务给过滤掉。
73.在一些实施例中,上述将待添加任务添加至目标任务队列,可以包括:
74.确定待添加任务是否为重试任务;
75.若待添加任务为重试任务,则确定目标任务队列中当前的队首任务是否为脏任
务;若是,则删除目标任务队列中当前的队首任务,并将待添加任务添加至目标任务队列;其中,重试任务为目标任务队列中执行失败,且支持任务重试的任务;任务队列从队首到队尾各任务的任务执行时间依次递增,重试任务的执行时间依据最新添加时间与预设延迟时间确定;
76.若待添加任务不是重试任务,则将待添加任务添加至目标任务队列。
77.示例性的,为了提高任务执行的可靠性,任务处理器可以支持任务重试功能,即对于支持重试的任务,在该任务执行失败的情况下,可以不需要重新由资源进行任务下发,而是可以通过生成重试任务的方式,重新将任务添加到任务队列中。
78.示例性的,重试任务的执行时间可以依据最新添加时间(添加到任务队列中的时间)与预设延迟时间(可以根据实际场景设定)确定,以保证重试任务的执行时间晚于当前队列中已存在的任务的执行时间。
79.相应地,任务处理器在将待添加任务添加到目标任务队列之前,还可以确定待添加任务是否为重试任务。
80.示例性的,重试任务中可以包括重试任务标识,任务处理器可以依据该重试任务标识识别待添加任务是否为重试任务。
81.对于待添加任务为重试任务的情况,任务处理器在将该待添加任务加入到目标任务队列之前,可以先确定目标任务队列中当前的队首任务是否为脏任务。
82.示例性的,任务队列从队首到队尾各任务的任务执行时间依次递增,即队首任务为。
83.任务处理器在确定目标任务队列中当前的队首任务为脏任务的情况下,可以删除目标任务队列中当前的队首任务,并将待添加任务添加至目标任务队列。
84.示例性的,对于非重试任务,任务处理器可以直接将该任务添加到目标任务队列的队尾。
85.示例性的,任务处理器将待添加任务添加到目标任务队列的情况下,可以对目标任务队列中的任务按照执行时间升序排列的方式进行排序。
86.需要说明的是,若待添加任务为重试任务,但队首任务不是脏任务,则可以认为该重试任务当前已经执行成功了,在该情况下,可以不需要再将该重试任务添加到任务队列中。
87.在一些实施例中,对于任一任务队列,通过为该任务队列分配的任务执行线程执行所述第一目标任务,可以包括:
88.对于任一任务队列,在该任务队列非空的情况下,按照从队首到队尾的顺序遍历该任务队列中各任务;其中,该任务队列从队首到队尾各任务的任务执行时间依次递增;
89.若当前的队首任务为脏任务,则删除当前的队首任务,将所删除的任务的下一个任务确定为最新的队首任务,并继续遍历;
90.若当前的队首任务为非脏任务,且当前的队首任务的任务执行时间已到达,则将当前的队首任务设置为脏任务,并通知为该任务队列分配的任务执行线程,通过该任务执行线程执行该任务队列中当前的队首任务,并结束遍历;
91.若当前的队首任务为非脏任务,且当前的队首任务的任务执行时间未到达,则结束遍历;
92.若该任务队列为空,则结束遍历。
93.示例性的,在任务读取过程中,对于任一任务队列,在该任务队列非空的情况下,任务处理器可以按照从队首到队尾的顺序遍历该任务队列中各任务,即按照各任务的执行时间从早到晚的顺序遍历各任务。
94.对于该队列当前的队首任务,任务处理器可以确定该任务是否为脏任务。
95.示例性的,任务处理器可以依据任务是否设置有脏任务标志,确定任务是否为脏任务。若任务设置有脏任务标志,则可以确定任务为脏任务;否则,可以确定任务不是脏任务,即为非脏任务。
96.若该任务(即队列当前的队首任务)为脏任务,则任务处理器可以删除当前的队首任务,此时,被删除的队首任务的下一个任务成为了队列最新的队首任务,任务处理器可以继续遍历该最新的队首任务,确定该队首任务是否为脏任务,若是,则继续删除当前的队首任务。
97.举例来说,假设队列中从队首到队尾依次包括任务a~任务d,则任务处理器可以先遍历当前的队首任务(任务a),若任务a为脏任务,则可以删除任务a,此时,任务b成为最新的队首任务;此时,任务处理器可以继续遍历,并确定当前的队首任务(任务b)是否为脏任务。
98.示例性的,在任务处理器确定任务队列当前的队首任务不是脏任务的情况下,任务处理器可以确定当前的队首任务的任务执行时间是否已到达,即当前系统时间是否大于等于当前的队首任务的任务执行时间。
99.在当前的队首任务的任务执行时间已经到达的情况下,可以将当前的队首任务设置为脏任务,并通知为队列分配的任务执行线程,通过该任务执行线程执行该任务队列中当前的队首任务,并结束此轮遍历。
100.在当前的队首任务的任务执行时间未到达的情况下,即当前系统时间小于当前的队首任务的任务执行时间的情况下,可以结束此轮遍历。在该情况下,该队列中的任务暂不执行。
101.示例性的,在按照上述方式遍历队列中的任务,且各任务均未脏任务的情况下,任务处理器可以依次将该任务队列中的各任务均删除,直至该任务队列为空的情况下,结束遍历。
102.可见,通过上述任务读取流程,可以保证任务队列中各任务按照执行顺序依次被读取和执行,保证了任务执行的时序性。此外,通过对任务队列中的任务的执行时间进行监测,能够保证任务执行的及时性,提高了任务执行效率。
103.在一个示例中,上述通知为该任务队列分配的任务执行线程,可以包括:
104.在该任务队列未分配任务执行线程的情况下,为该任务队列分配任务执行线程,并通知为该任务队列分配的任务执行线程。
105.示例性的,考虑到系统中资源数量可能会比较多,若为每一个资源均固定分配一个任务执行线程,则会需要大量的任务执线程。
106.因而,为了减少任务执行线程的需求,任务执行线程可以按需分配,对于任一任务队列,可以在该任务队列内存在任务需要执行的情况下,为该任务队列分配任务执行线程,由该任务执行线程执行该队列中需要执行的任务。
107.示例性的,对于任一任务队列,在按照上述任务读取流程,确定任务队列当前的队首任务为非脏任务,且当前的队首任务的任务执行时间已到达的情况下,可以确定该任务队列是否已分配任务执行线程。
108.在该任务队列未分配任务执行线程的情况下,可以为该任务队列分配任务执行线程,并通知为该任务队列分配的任务执行线程,通过该任务执行线程执行该任务队列中当前的队首任务。
109.示例性的,在该任务队列已分配任务执行线程的情况下,可以直接通知为该该任务队列分配的任务执行线程,通过该任务执行线程执行该任务队列中当前的队首任务。
110.在一个示例中,对于任一分配有任务执行线程的任务队列,在该任务队列当前的队首任务的任务执行时间未到达的情况下,释放为该任务队列分配的任务执行线程。
111.示例性的,对于任一任务队列,在已为该任务队列分配任务执行线程,且该任务队列当前的队首任务的任务执行时间未到达的情况下,可以释放为该任务队列分配的任务执行线程,避免任务队列在不存在任务需要执行的情况下对任务执行线程的占用。
112.为了使本领域技术人员更好地理解本技术实施例提供的技术方案,下面结合具体实例对本技术实施例提供的技术方案进行说明。
113.在该实施例中,为解决资源处理速度和数据实时同步,资源任务的时序和写入效率及线程执行效率问题,提出了一种基于任务桶(包括上述任务队列和资源标识,一个任务桶包含一个任务队列和一个线程标识)、线程池、任务调度的任务处理器实现资源业务处理的方案。
114.示例性的,如图2所示,任务处理器具备以下属性:
115.1、任务添加在任务容器中的任务桶中,任务依据资源标识添加到相同资源标识的任务桶,同一任务桶中的任务按照执行时间升序排序。
116.2、线程池中的每一个任务执行线程维护一个占有位,用来记录该任务执行线程执行的任务的资源标识。
117.3、线程池中空闲的任务执行线程,被分配给任务容器中存在达到执行条件且未执行的任务的任务桶。
118.示例性的,考虑到系统中资源的数量通常较大,为每个资源均固定分配任务执行线程会需要大量的任务执行线程,造成极大消耗,因此,可以在任务桶内存在任务已准备就绪(即达到执行条件,且该任务未执行)的情况下,为该任务桶分配任务执行线程。
119.例如,假设系统中资源数为n(n≥1),若资源m(1≤m≤n)对应的任务桶中存在未被执行的任务的执行时间小于等于当前系统时间,则为资源m分配任务执行线程。若资源m对应的任务桶中各任务的执行时间均大于当前系统时间(即队首任务的执行时间大于当前系统时间),则释放资源m占有的任务执行线程。
120.示例性的,任务执行线程的状态示意图可以如图3所示。
121.需要说明的是,若资源m对应任务桶中无任务,则资源m对应任务桶被释放。
122.因而,在存在资源m的任务需要添加到任务桶中的情况下,若资源m对应的任务桶存在,则将资源m的任务添加到对应的任务桶中;若资源m对应的任务桶不存在,则创建资源m对应的任务桶,并将资源m的任务添加到对应的任务桶中。
123.示例性的,任务处理器中还可以设置任务监控线程(可以称为任务监控器),用于
进行任务执行巡检,即每隔预设时间(如每秒)探测各任务桶中是否存在达到执行时间的未执行任务,若存在,则通知为该任务桶分配的任务执行线程进行任务消费。
124.可见,通过对应资源标识创建任务桶,不同资源的任务存入不同任务桶,并行地将各资源的任务存入任务桶,并从任务桶中消费任务,保证同一资源的任务执行的效率和时序。
125.4、支持任务过滤。
126.示例性的,通过确定任务的过滤关系,根据不同需求按需设置任务过滤条件。
127.例如,为了满足时序性和避免无效任务堆积,过滤条件可以设置为任务桶已存在任务生成时间早于当前推入任务(即上述待添加任务)的生成时间,则可以依据当前推入任务的任务类型对已存在任务进行过滤。
128.在一个示例中,任务桶任务过滤情况可以如表1所示:
129.表1
[0130][0131]
举例来说,在存在资源m的任务需要推入任务桶的情况下,可以先确定资源m是否存在任务桶于任务处理器中,若存在任务桶,则再判断任务桶中是否存在任务的生成时间小于当前推入任务的生成时间,若存在任务的生成时间小于当前推入任务的生成时间,则依据当前推入任务的任务类型以及生成时间小于当前推入任务的生成时间的任务的任务类型,执行任务过滤。
[0132]
例如,若数据源m下发删除任务,则可以过滤刚刚下发的添加、配置、布防、订阅等任务;若数据源m连续下发多次配置任务,则可以确定最后一次配置任务为实际要配置的,可以过滤前几次的配置任务;若下发数据源通道删除任务,则可以过滤在前下发的数据源通道添加任务;若下发数据目标修改任务,则可以过滤在前下发的多个修改任务;若下发数据目标删除任务,则可以过滤在前下发的添加、修改任务;若下发第三方资源删除任务,则可以过滤在前下发的添加任务等。
[0133]
可见,通过按照上述方式设置过滤条件,对多资源多任务批量下发场景,可以有效减少内核资源消耗,极大促使资源有效任务执行成功,提升客户的使用体验。
[0134]
5、支持任务重试。
[0135]
示例性的,为了提高产品可靠性和易用性,可以支持任务重试,包括资源登录重试、布防重试、配置任务重试等。
[0136]
示例性的,通过为执行失败的任务设置重试延迟时间,并删除任务桶内正在执行的该任务,并将其重新推入任务桶,以实现任务重试。
[0137]
可见,通过设置任务重试功能,提高任务执行的可靠性,由于重试任务的执行时间重置,不影响新任务的执行,严格保证任务时序性;此外,重试任务可以一直存在并执行,直到执行成功或被过滤、删除,严格保证任务有效性。
[0138]
下面对基于上述任务处理器实现的任务处理流程进行说明。
[0139]
在该实施例中,任务处理流程可以包括:
[0140]
1、配置任务容器。
[0141]
2、配置任务处理器。
[0142]
3、配置任务桶。
[0143]
示例性的,任务桶内任务的属性可以包括但不限于:资源标识、uuid、生成时间、执行时间、重试标志、脏任务标志。
[0144]
示例性的,任务桶可以包括3种状态:任务已就绪(存在达到执行时间,且未执行的任务)、任务未就绪(存在未达到执行时间,且未执行的任务)、无任务。
[0145]
示例性的,任务推入任务桶以及从任务桶中消费任务的流程可以分别参见图4和图5。
[0146]
4、任务桶属性实现相同资源的任务存放在一个任务桶内(通过资源标识匹配实现),任务桶中各任务按照执行时间进行升序排序。
[0147]
5、当有任务执行失败时,可以为执行失败的任务设置重试延迟时间,生成重试任务,并重新推入任务桶。
[0148]
6、当存在新的任务需要推入任务桶时,可以先对任务桶进行任务过滤,然后再推入任务桶。
[0149]
7、任务的消费处理。
[0150]
示例性的,任务处理可以根据实际资源业务进行分类,如:采集设备的增、删、配置;存储设备的增、删、配置;设备状态统计;数据上报统计;布防、撤防等。
[0151]
示例性的,当出现任务执行异常或失败时,可以进行任务重试,直到任务执行成功后被删除或任务被过滤掉。
[0152]
以上对本技术提供的方法进行了描述。下面对本技术提供的装置进行描述:
[0153]
请参见图6,为本技术实施例提供的一种任务处理装置的结构示意图,如图6所示,该任务处理装置可以包括:
[0154]
接收单元610,被配置为接收任务添加指令;该任务添加指令包括待添加任务以及资源标识,该资源标识用于唯一标识下发待添加任务的资源;
[0155]
添加单元620,被配置为依据待添加任务的资源标识,将待添加任务添加至目标任务队列,目标任务队列的资源标识与待添加任务的资源标识一致;
[0156]
处理单元630,被配置为对于任一任务队列,通过为该任务队列分配的任务执行线程执行该任务队列中到达任务执行时间的第一目标任务。
[0157]
在一些实施例中,添加单元620,具体被配置为确定是否存在目标任务队列;若不存在,则创建目标任务队列,并将待添加任务添加至目标任务队列;若存在,则将待添加任务添加至目标任务队列;
[0158]
添加单元620,还被配置为对于任一任务队列,在该任务队列中不存在任务的情况下,释放该任务队列。
[0159]
在一些实施例中,添加单元620,还被配置为在目标任务队列中已存在生成时间早于待添加任务的生成时间的第二目标任务的情况下,依据第二目标任务的任务类型,以及,待添加任务的任务类型,对第二目标任务进行过滤。
[0160]
在一些实施例中,添加单元620,还被配置为确定待添加任务是否为重试任务;若待添加任务为重试任务,则确定目标任务队列中当前的队首任务是否为脏任务;若是,则删除目标任务队列中当前的队首任务,并将待添加任务添加至目标任务队列;其中,重试任务为目标任务队列中执行失败,且支持任务重试的任务;任务队列从队首到队尾各任务的任务执行时间依次递增,重试任务的执行时间依据最新添加时间与预设延迟时间确定;若待添加任务不是重试任务,则将待添加任务添加至目标任务队列。
[0161]
在一些实施例中,处理单元630,具体被配置为对于任一任务队列,在该任务队列非空的情况下,按照从队首到队尾的顺序遍历该任务队列中各任务;其中,该任务队列从队首到队尾各任务的任务执行时间依次递增;
[0162]
若当前的队首任务为脏任务,则删除当前的队首任务,将所删除的任务的下一个任务确定为最新的队首任务,并继续遍历;
[0163]
若当前的队首任务为非脏任务,且当前的队首任务的任务执行时间已到达,则将当前的队首任务设置为脏任务,并通知为该任务队列分配的任务执行线程,通过该任务执行线程执行该任务队列中当前的队首任务,并结束遍历;
[0164]
若当前的队首任务为非脏任务,且当前的队首任务的任务执行时间未到达,则结束遍历;
[0165]
若该任务队列为空,则结束遍历。
[0166]
在一些实施例中,处理单元630,具体被配置为在该任务队列未分配任务执行线程的情况下,为该任务队列分配任务执行线程,并通知为该任务队列分配的任务执行线程;
[0167]
处理单元630,还被配置为对于任一分配有任务执行线程的任务队列,在该任务队列当前的队首任务的任务执行时间未到达的情况下,释放为该任务队列分配的任务执行线程。
[0168]
请参见图7,为本技术实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器701、通信接口702、存储器703和通信总线707。处理器701、通信接口702以及存储器703通过通信总线707完成相互间的通信。其中,存储器703上存放有计算机程序;处理器701可以通过执行存储器703上所存放的程序,执行上文描述的任务处理方法。
[0169]
本文中提到的存储器703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器703可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0170]
本技术实施例还提供了一种存储有计算机程序的计算机可读存储介质,例如图7中的存储器703,该计算机程序可由图7所示电子设备中的处理器701执行以实现上文中描述的任务处理方法。
[0171]
本技术实施例还提供了一种计算机程序,存储于计算机可读存储介质,例如图7中的存储器703,并且当处理器执行该计算机程序时,促使处理器701执行上文中描述的任务
处理方法。
[0172]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0173]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

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

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

相关文献