CN115170026A - 一种任务处理的方法和装置 - Google Patents

一种任务处理的方法和装置 Download PDF

Info

Publication number
CN115170026A
CN115170026A CN202210767428.3A CN202210767428A CN115170026A CN 115170026 A CN115170026 A CN 115170026A CN 202210767428 A CN202210767428 A CN 202210767428A CN 115170026 A CN115170026 A CN 115170026A
Authority
CN
China
Prior art keywords
task
processed
target
processing
blocking
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.)
Pending
Application number
CN202210767428.3A
Other languages
English (en)
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.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information 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 Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN202210767428.3A priority Critical patent/CN115170026A/zh
Publication of CN115170026A publication Critical patent/CN115170026A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Landscapes

  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种任务处理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取待处理任务,所述待处理任务包括第一元素和多个第二元素;根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。该实施方式通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现待处理任务的并发处理,提高任务处理效率。

Description

一种任务处理的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务处理的方法和装置。
背景技术
在特定场景下,现有的任务处理需要根据待处理任务的顺序,依次对多个待处理任务进行处理。例如物品生产订单派发场景,需要按照订单的生成顺序针对各个订单逐一进行处理。当某一订单中物品的库存量不满足订购量时,订单就无法完成,那么,即使该订单的后续订单中物品的库存量充足(即后续订单可以处理),也需要等待当前订单被处理后才能继续处理后续订单,这导致后续订单无法及时被处理。在有大量订单需要处理时,由于订单之间的耦合度高,因此可能导致多个订单的处理速度较慢。
发明内容
有鉴于此,本发明实施例提供一种任务处理的方法和装置,利用第一阻塞队列对待处理任务中可能相互影响的第一元素以及第二元素进行解耦,并将待处理任务拆分为多个子任务分别存储在不同的第一阻塞队列中处理,根据每个第一阻塞队列的处理结果,最终得到待处理任务的处理结果。通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现任务的并发处理,尤其在大批量数据需要处理时,可以显著提高任务的处理效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种任务处理的方法。
本发明实施例的一种任务处理的方法包括:获取待处理任务,所述待处理任务包括第一元素和多个第二元素;
根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;
将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;
对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
可选地,针对所述待处理任务为多个的情况;所述根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列,包括:将多个所述待处理任务分配至与所述第一元素对应的第二阻塞队列中,其中,不同第二阻塞队列中的待处理任务不相同;针对同一所述第二阻塞队列中的每个待处理任务:确定所述待处理任务对应的多个第二元素分别对应的多个第一阻塞队列。
可选地,所述对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果,包括:确定包括多个第二元素的目标任务所对应的多个目标子任务,并确定多个所述目标子任务分别对应的第一目标阻塞队列;在各个第一目标阻塞队列中的所述目标子任务位于当前处理顺序时,根据所述目标子任务是否满足预设处理条件确定所述目标子任务在各个所述第一目标阻塞队列中分别对应的处理结果;在各个所述处理结果均为处理成功的情况下,对所述目标任务进行处理,并生成指示了所述待处理任务处理成功的处理结果。
可选地,该方法还包括:在任一个第一目标阻塞队列中所述目标子任务位于当前处理顺序、且任一个所述第一目标阻塞队列中的目标子任务不满足所述预设处理条件的情况下,从多个所述第一目标阻塞队列中删除与所述目标任务分别对应的目标子任务。
可选地,在所述待处理任务为物品分配场景的情况下,所述第一元素为仓库标识,所述第二元素为物品标识。
可选地,在所述待处理任务为物品配运场景的情况下,所述预设单独阻塞元素为运输状态,所述第二元素为物品标识。
可选地,第一阻塞队列与所述物品标识一一对应;每一个所述第一阻塞队列中包括:包含所述物品标识的一个或多个待处理任务。
可选地,所述对所述多个第一阻塞队列中的子任务进行并行处理,包括:针对同一个第一阻塞队列:按照预设优先级确定所述第一阻塞队列中所述一个或多个子任务的处理顺序。
可选地,在所述从多个所述第一目标阻塞队列中删除与所述目标任务分别对应的目标子任务之后,还包括:将所述目标任务放入待处理任务池,并将所述目标任务的任务状态标注为处理失败,以便在预设时间段后重新从所述待处理任务池中获取所述目标任务。
为实现上述目的,根据本发明实施例的又一方面,提供了一种任务处理的装置。
本发明实施例的一种任务处理的装置包括:获取模块,用于获取待处理任务,所述待处理任务包括第一元素和多个第二元素;分配模块,用于根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;确定模块,用于将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;处理模块,用于对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
为实现上述目的,根据本发明实施例的又一方面,提供了一种用于任务处理的电子设备。
本发明实施例的一种任务处理的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种任务处理的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种任务处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:利用第一阻塞队列对待处理任务中可能相互影响的第一元素以及第二元素进行解耦,并将待处理任务拆分为多个子任务分别存储在不同的第一阻塞队列中处理,根据每个第一阻塞队列的处理结果,最终得到待处理任务的处理结果。通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现任务的并发处理,尤其在大批量数据需要处理时,可以显著提高任务的处理效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的任务处理的方法的主要步骤的示意图;
图2是根据本发明实施例的确定第一阻塞队列的主要步骤的示意图;
图3是根据本发明实施例的第二阻塞队列和第一阻塞队列的示意图;
图4是根据本发明实施例的并行处理过程的主要步骤的示意图;
图5是根据本发明实施例的根据第一目标阻塞队列中分别对应的处理结果对目标任务进行处理的具体步骤的示意图;
图6是根据本发明实施例的任务处理的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的任务处理的方法的主要步骤的示意图。
如图1所示,本发明实施例的任务处理的方法主要包括以下步骤:
步骤S101:获取待处理任务,待处理任务包括第一元素和多个第二元素;
步骤S102:根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;
步骤S103:将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;
步骤S104:对多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
其中,第一元素为待处理任务中仅唯一存在的元素,也就是各个待处理任务与第一元素一一对应,在一种可选的实施例中,在所述待处理任务为物品分配场景的情况下,所述第一元素为仓库标识,所述第二元素为物品标识。在智慧物流领域,为了高效地完成物品的分配,通常在上游先对完整任务进行拆分,把可以从同一仓库分配的物品划分为一个待处理任务,这样就可以得到多个分别对应于不同仓库的待处理任务。示例性地,完整任务为购买A商品100件,B商品100件,C商品50件,其中,A商品和B商品都可以从仓库一分配,而C商品只能从仓库二分配,那么在上游则会将完整任务分配成待处理任务a(A商品100件和B商品100件从仓库一分配)和待处理任务b(C商品50件从仓库二分配)。也就是说,对于每个待处理任务,仅能从唯一的仓库进行分配。在另一种可选的实施例中,在待处理任务为物品配运场景的情况下,预设单独阻塞元素为运输状态,第二元素为物品标识。
第二元素则是在待处理任务中可以不唯一的元素,同样以上述物品分配场景为例,待处理任务a中既包括A商品也包括B商品,其中物品标识并不唯一,且各个待处理任务中包括的物品标识可以相同也可以不同。在一种可选的实施例中,第一阻塞队列与物品标识一一对应;每一个第一阻塞队列中包括:包含物品标识的一个或多个待处理任务。
在一种可选的实施例中,可以通过第一元素和第二元素对待处理任务进行多次解耦,即步骤S102可以如图2所示,进一步包括:
步骤S201:将多个待处理任务分配至与第一元素对应的第二阻塞队列中,其中,不同第二阻塞队列中的待处理任务不相同;
步骤S202:针对同一第二阻塞队列中的每个待处理任务:确定待处理任务对应的多个第二元素分别对应的多个第一阻塞队列。
可以理解的是,当存在多个待处理任务时,通过先根据第一元素对待处理任务进行分配,可以将强耦合的第一元素进行拆分,使得不同第一元素对应的待处理任务在处理过程中解耦,避免相互的干扰。进一步根据第二元素对包含同一第一元素的待处理任务拆分成与第二元素对应的子任务,并将子任务分配至对应的第一阻塞队列中,实现了并行处理多个待处理任务,同时对每个待处理任务也实现了并行处理,提高处理效率。当存在单个待处理任务时,则仅对应有唯一的第一元素,此时可以直接根据多个第二元素对待处理任务进行拆分,也可以实现并行处理的效果,提高处理效率。
下面以物品分配场景作为具体实例对存在多个待处理任务时的第二阻塞队列和第一阻塞队列进行说明,如图3所示,第一元素为仓库标识,第二阻塞队列分别为队列1和队列2,其中队列1为从仓库一进行分配的待处理任务队列,队列2为从仓库二进行分配的待处理任务队列。对于待处理任务,先根据第一元素进行分配,分别分配至队列1或队列2。进一步地,第二元素为物品标识,假设分配至仓库一的待处理任务分别为待处理任务a、待处理任务b和待处理任务c,其中待处理任务a为从仓库一分配A商品100件,待处理任务b为从仓库一分配A商品100件和B商品100件,待处理任务c为从仓库一分配A商品100件和C商品100件,那么与仓库一对应的第一阻塞队列则为A商品队列,B商品队列和C商品队列,其中,在A商品队列中存储了待处理任务a、b、c,在B商品队列中存储了待处理任务b,在C商品队列中存储了待处理任务c。同理,如果队列2中包括待处理任务d和e,其中待处理任务d为从仓库二分配A商品100件,待处理任务e为从仓库二A商品100件和B商品100件,那么与队列二对应的第一阻塞队列则为A商品队列和B商品队列,因为在队列二中的待处理任务只涉及到了A商品和B商品,没有涉及C商品,因此没有C商品队列。
需要说明的是,步骤S104中的并行处理是指各个第一阻塞队列的处理过程互不干扰,在一种可选的实施例中,针对同一个第一阻塞队列:按照预设优先级确定第一阻塞队列中一个或多个待处理任务的处理顺序。也就是说,在各个第一阻塞队列中,一个或多个待处理任务都有各自的处理顺序。
对于优先级可以根据用户的需求进行自定义设定,在一种可选的实施例中,可以根据待处理任务的创建时间确定优先级,即创建时间越早,优先级越高;在另一种可选的实施例中,也可以根据与待处理任务对应的用户的优先级确定待处理任务的优先级,例如官方专卖店创建的待处理任务优先级大于零售店创建的待处理任务的优先级。
在一种可选的实施例中,步骤S104中并行处理的过程,如图4所示,具体包括:
步骤S401:确定包括多个第二元素的目标任务所对应的多个目标子任务,并确定多个目标子任务分别对应的第一目标阻塞队列;
步骤S402:在各个第一目标阻塞队列中的目标子任务位于当前处理顺序时,根据目标子任务是否满足预设处理条件确定目标子任务在各个第一目标阻塞队列中分别对应的处理结果;
步骤S403:在各个处理结果均为处理成功的情况下,确定待处理任务的处理结果为处理成功。
由于各个待处理任务是按照优先级顺序进行处理的,因此在同一时刻进行处理的待处理任务是唯一的,位于当前处理顺序的目标子任务则是指在当前时刻优先级排在第一的目标子任务。
对于包括多个第二元素的目标任务,需要在对应的多个第一目标阻塞队列中全部满足预设处理条件的情况下才可以顺利完成目标任务,即多个目标子任务的处理结果均为处理成功的情况下。而各个第一目标阻塞队列又有各自的处理顺序,无法保证多个第一目标阻塞队列能同时处理同一目标子任务,因此各个第一目标阻塞队列仅需要按照各自的处理顺序进行处理,并生成目标子任务在各个第一目标阻塞队列中的处理结果,并将目标子任务的处理结果进行存储,最终根据全部目标子任务对应的处理结果对目标任务进行处理,且在各个处理结果均为处理成功的情况下,才可以对目标任务进行处理。
下面以图3为例对并行处理的过程进行具体说明,其中,预先将待处理任务b分成了目标子任务b(A)和目标子任务b(B),将待处理任务c分成了目标子任务c(A)和目标子任务c(C)。对于A商品队列,目标子任务a的优先级大于目标子b(A)的优先级,进一步大于目标子c(A)的优先级,因此先对目标子a进行处理;对于B商品队列和C商品队列,仅包含目标子b(B)和目标子c(C),因此直接对目标子b(B)和目标子c(C)进行处理。由于在A商品队列中,需要对目标子a处理完成后,才可以依次对目标子b(A)和目标子c(A)进行处理,因此,各个第一目标阻塞队列(B商品队列和C商品队列)先对目标子任务进行预处理,并生成对应的处理结果,并根据第一目标阻塞队列中分别对应的处理结果对目标任务进行处理。具体过程如5所示,包括:
步骤S501:从待处理任务a、b、c中确定出包括多个第二元素的目标任务b和目标任务c,并根据第二元素对待处理任务进行拆分,得到目标子任务b(A)、目标子任务b(B)、目标子任务c(A)和目标子任务c(C);
步骤S502:A商品队列对待处理任务a进行处理并生成待处理任务a的处理结果a,B商品队列对目标子任务b(B)进行预处理,C商品队列对目标子任务c(C)进行预处理,并生成目标子任务b(B)和目标子任务c(C)分别在B商品队列和C商品队列中对应的处理结果b(B)和处理结果c(C);
步骤S503:A商品队列对目标任务b(A)进行预处理,生成目标子任务b(A)在A商品队列中对应的处理结果b(A);此时目标任务b在各个第一目标阻塞队列中均得到了各个目标子任务对应的处理结果,则根据处理结果b(A)和处理结果b(B)对目标任务b进行处理;
步骤S504:A商品队列对目标任务c(A)进行预处理,生成目标子任务c(A)在A商品队列中对应的处理结果c(A);此时目标任务c在各个第一目标阻塞队列中均得到了各个目标子任务对应的处理结果,则根据处理结果c(A)和处理结果c(B)对目标任务c进行处理;
步骤S505:根据处理结果a确定待处理任务a的处理结果,根据处理结果b(A)和处理结果b(B)确定目标任务b(待处理任务b)的处理结果,根据处理结果c(A)和处理结果c(B)确定目标任务c(待处理任务c)的处理结果。
通过先对目标任务在对应的各个第一目标阻塞队列中进行预处理,再根据多个处理结果对目标任务进行处理,可以实现同一目标任务在各个第一目标阻塞队列中的异步处理,每个第一目标阻塞队列中的待处理任务都是单独的处理线路,互不影响,同时不会影响后续待处理任务的正常处理。另外,由于需要根据目标任务对应的各个第一目标阻塞队列的处理结果,来对目标任务进行处理,因此保证了目标任务在多个待处理任务中的处理顺序,即等待目标任务所对应的最后一个第一目标阻塞队列生成指示了处理成功的处理结果后,才可以对目标任务进行处理,极大程度做到并发处理。
在对于处理结果为处理失败的情况,在一种可选的实施例中,可以在得到目标任务所对应的全部第一目标阻塞队列均生成目标子任务的处理结果后,根据全部目标子任务的的处理结果进行确定。但是此种方式需要等目标任务所对应的最后一个第一目标阻塞队列中的目标子任务生成指示了处理失败的处理结果后才能确定,等待时间过长,以至于影响处理效率,同时在等待过程中占用不必要的内存空间。相比于对目标任务进行处理时,需要目标任务对应的全部第一目标阻塞队列均生成指示处理成功的处理结果,在任一目标子任务的处理结果为失败时,目标任务则无法顺利处理,因此在进一步可选的实施例中,包括:与在任一个第一目标阻塞队列中目标子任务位于当前处理顺序、且任一个第一目标阻塞队列中的目标子任务不满足预设处理条件的情况下,从多个第一目标阻塞队列中删除与目标任务分别对应的目标子任务。也就是说,当存在任一目标子任务的处理结果指示了处理失败的情况时,则无法对目标任务进行处理,其他第一目标阻塞队列也没必要再对同一目标任务对应的目标子任务进行预处理,通过上述方式,提前结束了对无法处理的目标任务进行多余预处理的过程,节省处理时间,提高处理效率。
在进一步可选的实施例中,在从多个第一目标阻塞队列中删除与目标任务分别对应的目标子任务之后,还包括:将目标任务放入待处理任务池,并将目标任务的任务状态标注为处理失败,以便在预设时间段后重新从待处理任务池中获取目标任务。通过上述过程,可以对无法处理的目标任务进行多次轮询尝试,最大限度的保证目标任务的顺利处理,保证任务处理的完整性。
根据本发明实施例的任务处理的方法可以看出,利用第一阻塞队列对待处理任务中可能相互影响的第一元素以及第二元素进行解耦,并将待处理任务拆分为多个子任务分别存储在不同的第一阻塞队列中处理,根据每个第一阻塞队列的处理结果,最终得到待处理任务的处理结果。通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现任务的并发处理,尤其在大批量数据需要处理时,可以显著提高任务的处理效率。
图6是根据本发明实施例的任务处理的装置的主要模块的示意图。
如图6所示,本发明实施例的任务处理的装置500包括:
获取模块601,用于获取待处理任务,所述待处理任务包括第一元素和多个第二元素;
分配模块602,用于根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;
确定模块603,用于将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;
处理模块604,用于对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
在一种可选的实施例中,所述分配模块602还用于,针对所述待处理任务为多个的情况;将多个所述待处理任务分配至与所述第一元素对应的第二阻塞队列中,其中,不同第二阻塞队列中的待处理任务不相同;针对同一所述第二阻塞队列中的每个待处理任务:确定所述待处理任务对应的多个第二元素分别对应的多个第一阻塞队列。
在一种可选的实施例中,所述处理模块604还用于,确定包括多个第二元素的目标任务所对应的多个目标子任务,并确定多个所述目标子任务分别对应的第一目标阻塞队列;在各个第一目标阻塞队列中的所述目标子任务位于当前处理顺序时,根据所述目标子任务是否满足预设处理条件确定所述目标子任务在各个所述第一目标阻塞队列中分别对应的处理结果;在各个所述处理结果均为处理成功的情况下,对所述目标任务进行处理并生成指示了所述待处理任务处理成功的处理结果。
在一种可选的实施例中,所述处理模块504还用于,在任一个第一目标阻塞队列中所述目标子任务位于当前处理顺序、且任一个所述第一目标阻塞队列中的目标子任务不满足所述预设处理条件的情况下,从多个所述第一目标阻塞队列中删除与所述目标任务分别对应的目标子任务。
在一种可选的实施例中,在所述待处理任务为物品分配场景的情况下,所述第一元素为仓库标识,所述第二元素为物品标识。
在一种可选的实施例中,在所述待处理任务为物品配运场景的情况下,所述预设单独阻塞元素为运输状态,所述第二元素为物品标识。
在一种可选的实施例中,第一阻塞队列与所述物品标识一一对应;每一个所述第一阻塞队列中包括:包含所述物品标识的一个或多个待处理任务。
在一种可选的实施例中,所述处理模块504还用于,针对同一个第一阻塞队列:按照预设优先级确定所述第一阻塞队列中所述一个或多个子任务的处理顺序。
在一种可选的实施例中,所述处理模块504还用于,在所述从多个所述第一目标阻塞队列中删除与所述目标任务对应的多个目标子任务之后,将所述目标任务放入待处理任务池,并将所述目标任务的任务状态标注为处理失败,以便在预设时间段后重新从所述待处理任务池中获取所述目标任务。
根据本发明实施例的任务处理的装置可以看出,利用第一阻塞队列对待处理任务中可能相互影响的第一元素以及第二元素进行解耦,并将待处理任务拆分为多个子任务分别存储在不同的第一阻塞队列中处理,根据每个第一阻塞队列的处理结果,最终得到待处理任务的处理结果。通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现任务的并发处理,尤其在大批量数据需要处理时,可以显著提高任务的处理效率。
图7示出了可以应用本发明实施例的任务处理的方法或任务处理的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送数据等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所发送的待处理任务提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如待处理任务对应的处理结果)反馈给终端设备。
需要说明的是,本发明实施例所提供的任务处理的方法一般由服务器705执行,相应地,任务处理的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)第一接口805也连接至总线804。
以下部件连接至I/O第一接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络第一接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O第一接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、分配模块、确定模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“用于获取一个或多个待处理任务,所述待处理任务包括第一元素和第二元素的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
获取待处理任务,所述待处理任务包括第一元素和多个第二元素;根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
根据本发明实施例的技术方案,利用第一阻塞队列对待处理任务中可能相互影响的第一元素以及第二元素进行解耦,并将待处理任务拆分为多个子任务分别存储在不同的第一阻塞队列中处理,根据每个第一阻塞队列的处理结果,最终得到待处理任务的处理结果。通过将待处理任务拆分为多个子任务,并针对子任务并行处理,可以实现待处理任务的并发处理,尤其在大批量数据需要处理时,可以显著提高任务的处理效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种任务处理的方法,其特征在于,包括:
获取待处理任务,所述待处理任务包括第一元素和多个第二元素;
根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;
将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;
对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
2.根据权利要求1所述的方法,其特征在于,针对所述待处理任务为多个的情况;所述根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列,包括:
将多个所述待处理任务分配至与所述第一元素对应的第二阻塞队列中,其中,不同第二阻塞队列中的待处理任务不相同;
针对同一所述第二阻塞队列中的每个待处理任务:确定所述待处理任务对应的多个第二元素分别对应的多个第一阻塞队列。
3.根据权利要求1所述的方法,其特征在于,所述对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果,包括:
确定包括多个第二元素的目标任务所对应的多个目标子任务,并确定多个所述目标子任务分别对应的第一目标阻塞队列;
在各个第一目标阻塞队列中的所述目标子任务位于当前处理顺序时,根据所述目标子任务是否满足预设处理条件确定所述目标子任务在各个所述第一目标阻塞队列中分别对应的处理结果;
在各个所述处理结果均为处理成功的情况下,对所述目标任务进行处理,并生成指示了所述待处理任务处理成功的处理结果。
4.根据权利要求3所述的方法,其特征在于,还包括:
在任一个第一目标阻塞队列中所述目标子任务位于当前处理顺序、且任一个所述第一目标阻塞队列中的目标子任务不满足所述预设处理条件的情况下,从多个所述第一目标阻塞队列中删除与所述目标任务分别对应的目标子任务。
5.根据权利要求1所述的方法,其特征在于,在所述待处理任务为物品分配场景的情况下,所述第一元素为仓库标识,所述第二元素为物品标识;
或,
在所述待处理任务为物品配运场景的情况下,所述第一阻塞元素为运输状态,所述第二元素为物品标识。
6.根据权利要求5所述的方法,其特征在于,
第一阻塞队列与所述物品标识一一对应;每一个所述第一阻塞队列中包括:包含所述物品标识的一个或多个待处理任务。
7.根据权利要求4的方法,其特征在于,所述对所述多个第一阻塞队列中的子任务进行并行处理,包括:
针对同一个第一阻塞队列:按照预设优先级确定所述第一阻塞队列中所述一个或多个子任务的处理顺序。
8.根据权利要求4所述的方法,其特征在于,在所述从多个所述第一目标阻塞队列中删除与所述目标任务分别对应的目标子任务之后,还包括:
将所述目标任务放入待处理任务池,并将所述目标任务的任务状态标注为处理失败,以便在预设时间段后重新从所述待处理任务池中获取所述目标任务。
9.一种任务处理的装置,其特征在于,包括:
获取模块,用于获取待处理任务,所述待处理任务包括第一元素和多个第二元素;
分配模块,用于根据所述第一元素和所述第二元素,确定与所述待处理任务对应的多个第一阻塞队列;其中,所述第一阻塞队列与所述第一元素以及所述第二元素一一对应;
确定模块,用于将所述待处理任务拆分为与多个所述第一阻塞队列分别对应的多个子任务,并将所述子任务存储于对应的所述第一阻塞队列中;
处理模块,用于对所述多个第一阻塞队列中的子任务进行并行处理,根据处理结果确定所述待处理任务的处理结果。
10.一种用于任务处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202210767428.3A 2022-07-01 2022-07-01 一种任务处理的方法和装置 Pending CN115170026A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210767428.3A CN115170026A (zh) 2022-07-01 2022-07-01 一种任务处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210767428.3A CN115170026A (zh) 2022-07-01 2022-07-01 一种任务处理的方法和装置

Publications (1)

Publication Number Publication Date
CN115170026A true CN115170026A (zh) 2022-10-11

Family

ID=83490229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210767428.3A Pending CN115170026A (zh) 2022-07-01 2022-07-01 一种任务处理的方法和装置

Country Status (1)

Country Link
CN (1) CN115170026A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445596A (zh) * 2020-11-27 2021-03-05 平安普惠企业管理有限公司 基于多线程的数据导入方法、系统及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112445596A (zh) * 2020-11-27 2021-03-05 平安普惠企业管理有限公司 基于多线程的数据导入方法、系统及存储介质
CN112445596B (zh) * 2020-11-27 2024-02-02 上海睿量私募基金管理有限公司 基于多线程的数据导入方法、系统及存储介质

Similar Documents

Publication Publication Date Title
CN108182111B (zh) 任务调度系统、方法和装置
CN110348771B (zh) 一种对订单进行组单的方法和装置
CN110866709A (zh) 合并订单的方法和装置
CN110889656B (zh) 一种仓库规则配置方法和装置
WO2021197477A1 (zh) 一种用于立体库的设备调度方法和装置
CN113610448A (zh) 物品调度方法、装置、电子设备和计算机可读介质
CN113760488A (zh) 调度任务的方法、装置、设备和计算机可读介质
CN111461583B (zh) 一种库存盘点方法和装置
CN111401684A (zh) 一种任务处理的方法和装置
CN115170026A (zh) 一种任务处理的方法和装置
CN111260240A (zh) 一种任务分配方法及装置
CN112817562A (zh) 业务处理的方法和装置
CN113393193B (zh) 出库方法及装置
CN113128821A (zh) 确定任务的方法和装置
CN109902847B (zh) 预测分库订单量的方法和装置
CN109840815B (zh) 用于订单处理的系统及方法
WO2019015254A1 (zh) 信息处理方法和装置
CN113706064A (zh) 一种订单处理方法和装置
CN115629853A (zh) 一种任务调度的方法和装置
CN111695841A (zh) 分配货物方法、装置、设备和计算机可读介质
CN113919734A (zh) 订单配送方法和装置
CN113077220A (zh) 用户请求的处理方法和装置
CN113822516A (zh) 一种配运方的匹配方法及装置
CN113762825A (zh) 确定出库列表的方法和装置
CN112784187A (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