CN111258741B - 仓库任务执行的方法、分布式服务器集群及计算机设备 - Google Patents
仓库任务执行的方法、分布式服务器集群及计算机设备 Download PDFInfo
- Publication number
- CN111258741B CN111258741B CN202010093374.8A CN202010093374A CN111258741B CN 111258741 B CN111258741 B CN 111258741B CN 202010093374 A CN202010093374 A CN 202010093374A CN 111258741 B CN111258741 B CN 111258741B
- Authority
- CN
- China
- Prior art keywords
- server
- task
- task execution
- warehouse
- message queue
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Accounting & Taxation (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种仓库任务执行的方法、分布式服务器集群、计算机设备和存储介质。所述方法包括:第一服务器获取仓库任务的执行指令;其中,所述仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;所述第一服务器根据所述订单信息生成多个第一任务执行请求,并将多个所述第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对所述第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。采用本方法能够降低执行服务器的压力,实现大批量仓库任务的同步、并行、高效的执行。
Description
技术领域
本申请涉及物流信息技术领域,特别是涉及一种仓库任务执行的方法、分布式服务器集群及计算机设备。
背景技术
随着物流信息技术的发展,现代信息技术在物流各个作业环节中得到了综合应用,计算机网络技术的广泛引入,使物流行业逐步实现信息化。
但是,随着物流行业的发展和壮大,需要处理的业务数据量也越来越大。例如,在物流行业中的仓储管理领域,在订单量大幅度增长的情况下,如何保证仓库任务执行的效率成为急需解决的问题。
一般来说,会有指定的执行服务器根据作业人员刷选出来的订单进行任务的执行。但是,当仓库作业人员一次刷选出来的订单数量较大时(一个订单中还可能包含多个重复的任务),或者有多名作业人员同时为同一个执行服务器刷选出多批订单时,由于任务数据量的猛增,串行执行使得该执行服务器的各种指标飙升,数据库的压力也会倍增,因此,能会导致执行服务器宕机、任务数据丢失等问题,从而导致仓库任务执行的效率急剧下降。
发明内容
基于此,有必要针对上述技术问题,提供一种在大批量仓库作业的情况下,能够提升仓库任务执行效率的仓库任务执行的方法、分布式服务器集群及计算机设备和存储介质。
一种仓库任务执行的方法,上述方法包括:第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,根据订单信息生成多个第一任务执行请求,包括:根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
在一个实施例中,将多个第一任务执行请求依次分发到第一消息队列,包括:将多个第一任务执行请求发送到消息队列服务器;其中,消息队列服务器生成第一消息队列,并将多个第一任务执行请求依次分发到第一消息队列。
在一个实施例中,在第一服务器获取仓库任务执行指令之后还包括:对仓库任务执行指令中的多个订单分别进行加锁处理。
在一个实施例中,上述方法还包括:若当前第二服务器将当前第二服务器监听到的第一任务执行成功,则当前第二服务器根据第一任务中包含的订单信息生成第二任务执行请求,并将第二任务执行请求发送到第二消息队列;多个第三服务器分别对第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行。
在一个实施例中,根据第一任务所对应的订单信息生成第二任务执行请求,包括:获取订单信息中的单号信息,以单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据包裹拣选数据生成创建拣选包裹的第二任务执行请求。
在一个实施例中,上述方法还包括:若当前第三服务器将当前第三服务器监听到的第二任务执行成功,则当前第三服务器根据第二任务所对应的订单信息生成第三任务执行请求,并将第三任务执行请求发送到第三消息队列;多个第四服务器分别对第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行。
在一个实施例中,根据第二任务所对应的订单信息生成第三任务执行请求,包括:获取订单信息中的包裹信息,以包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
在一个实施例中,部分或全部第二服务器替代第三服务器和/或第四服务器,完成第三服务器和/或第四服务器的相应步骤。
一种分布式服务器集群,上述分布式服务器集群包括:第一服务器以及多个第二服务器;第一服务器,用于获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器,还用于根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器,用于分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
上述仓库任务执行的方法、分布式服务器集群及计算机设备和存储介质,将批量订单所对应的批量仓库任务分流到多个处理器分别进行任务的执行,降低了执行服务器的压力,实现了大批量仓库任务的同步、并行以及高效的执行。
附图说明
图1为一个实施例中的仓库任务执行的方法的流程示意图;
图2为一个应用实例中的仓库任务执行的方法的流程示意图;
图3为一个实施例中的分布式服务器集群的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供了一种仓库任务执行的方法,应用于分布式服务器集群。参考图1,图1示出了一个实施例中的仓库任务执行的方法的流程示意图,包括以下步骤:
步骤S101:第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息。
其中,第一服务器可以是分布式服务器集群中的任意一台服务器,不需要指定某一台固定的服务器;仓库任务可以是预占用仓库库存(库存扣减)、创建拣选包裹、申请电子面单等与物流仓库货物管理相关的任何任务,第一服务器获取的仓库任务可以包括上述任务中的一种任务或多种任务;订单信息是与订单相对应的可以反映该订单内容的数据信息,可以包括商品信息、单号信息、包裹信息中的一种或多种。
具体地,分布式服务器集群中的第一服务器获取仓库任务的执行指令,该指令可以是作业人员在客户终端的显示界面上进行订单筛选后通过客户终端向第一服务器发送的指令,也可以是作业人员在第一服务器的任务管理界面中直接添加的指令。仓库任务的执行指令中包含有多个订单,每个订单都对应有能反映该订单内容的数据信息。
步骤S102:第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列。
具体地,第一服务器根据各订单所分别对应的订单信息生成相应的第一任务执行请求。可以依据仓库任务的需要,从商品、单号、包裹等不同维度出发,以其中一个维度为单位维度生成相应的多个第一任务执行请求;在生成多个第一任务执行请求之后,第一服务器可以将上述多个请求转化为可放入消息队列的消息格式,并将其依次放入第一消息队列;其中,第一消息队列可以部署在第一服务器上、分布式集群中的任意一台服务器或专门的消息队列服务器上。
在一个实施例中,根据订单信息生成多个第一任务执行请求,包括:根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
在本实施例中,第一服务器获取各订单所对应的订单信息,从商品维度出发,以商品的品类为单位维度对订单信息中的商品信息进行合并处理,并根据合并后的商品信息生成预占用仓库库存的第一任务执行请求。
具体地,第一服务器可以根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并。例如,若 N个订单中同时包含有商品A,且每个订单中包含商品A的数量为1,如果直接进行预占用仓库库存的任务执行请求的创建,则需要创建N个任务执行请求,每个任务执行请求对应“为商品A扣减库存1”的任务;若先将所有订单中商品A的数量进行合并,则合并后商品A对应的数量是N,以商品的品类为维度单位,即以商品A为维度,只需要创建一个任务执行请求,该任务执行请求对应“为商品A扣减库存N”的任务。其中,相同品类商品的数量合并处理可以是针对所有商品,也可以是针对部分被选中的热点商品,具体对哪些品类的商品进行数量合并可以根据作业人员的意愿进行设置。
本实施例,通过对订单信息以商品品类为单位进行合并处理,可以减少任务执行请求创建的数量,提高任务执行请求创建的效率,降低系统的整体消耗,从而提高仓库任务执行的整体效率。
在一个实施例中,将多个第一任务执行请求依次分发到第一消息队列,包括:将多个第一任务执行请求发送到消息队列服务器;其中,消息队列服务器生成第一消息队列,并将多个第一任务执行请求依次分发到第一消息队列。
在本实施例中,第一服务器将多个第一任务执行请求发送到消息队列服务器;消息队列服务器接收第一服务器发送的多个第一任务执行请求,并生成第一消息队列,将多个第一任务执行请求依次分发至该第一消息队列中。其中,消息队列服务器可以是分布式集群服务器中的任何一台普通服务器,也可以是一台专门的服务器,可以通过在服务器上进行设置和部署使其具有消息队列服务器的功能。可以利用Redis数据库、WINDQ、ActiveMQ软件其中的任意一种或其他可以实现消息队列功能的软件或程序来实现上述方法中的消息队列。
本实施例,利用消息队列服务器专门对消息队列进行控制和管理,可以减轻第一服务器的压力,避免由于第一服务器的宕机、指标飙升带来的数据丢失、效率降低等问题,从而可以提高分布式服务器集群中的其他服务器访问消息队列的效率,进而提高整个分布式服务器集群的运行效率、保障任务完成的效率。
步骤S103:多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
其中,多个第二服务器是分布式服务器集群中的任意多台服务器,上述的第一服务器也可以作为多个第二服务器中对一台。
具体地,分布式服务器集群中的多台第二服务器分别对第一消息队列进行监听,当其中一个第二服务器监听到一个第一任务执行请求后,进入到仓库任务的执行状态,根据监听到的该第一任务请求进行相应的仓库任务的执行,此时其他的第二服务器继续进行任务执行请求的监听,直到也监听到了一个任务执行请求便可进入相应的任务执行状态。当第二服务器将自己监听到的任务执行完成后,可以再次进入监听状态,直到监听到另一个任务执行请求后,再次进入任务执行状态。多台第二服务器以此往复,直到第一消息队列中的所有的第一任务执行请求被全部监听到并全部执行完成。
上述的仓库任务执行的方法,将批量订单所对应的批量仓库任务按照订单信息进行整合后,分流到多个处理器分别进行任务的执行,降低了执行服务器的压力,实现了大批量仓库任务的同步、并行以及高效的执行。
在一个实施例中,在第一服务器获取仓库任务执行指令之后还包括:对仓库任务执行指令中的多个订单分别进行加锁处理。
在本实施例中,第一服务器获取仓库任务执行指令之后,为保证数据的正确性和一致性,可以通过分布式锁来对多个订单中的数据信息进行锁定。可以利用Redis数据库实现分布式锁,也可以通过zookeeper系统实现分布式锁的功能等等,只要满足本实施例中对于分布式锁的功能要求,都可以应用于本实施例中。
本实施例,由于第一服务器可能会接收到来自多个作业人员近乎同一时间发送的仓库任务执行指令,每一个指令中都包含批量的订单,不同指令中可能包含有重复的订单,所以通过对各个订单的数据信息进行加锁处理,可以确保任务执行前后订单数据的一致性,避免同一时间对同一个订单进行重复的任务操作,从而可以提高任务执行的准确性。
在一个实施例中,上述方法还包括:若当前第二服务器将当前第二服务器监听到的第一任务执行成功,则当前第二服务器根据第一任务中包含的订单信息生成第二任务执行请求,并将第二任务执行请求发送到第二消息队列;多个第三服务器分别对第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行。
其中,当前第二服务器为多个第二服务器中的任意一个;第二任务执行请求为包含在仓库任务中的与第一任务相关的后续任务;第三服务器可以是分布式集群中的任意一台服务器,第三服务器可以与第一服务器或第一服务器为同一台服务器。
在本实施例中,若当前第二服务器将当前第二服务器监听到的第一任务执行成功,则可以根据第一任务中所包含的订单信息生成第一任务对应的后续的第二任务,并根据第二任务生成相应的第二任务执行请求,然后将生成的第二任务执行请求发送至第二消息队列;分布式服务器集群中的多个第三服务器分别对第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求完成第二任务,从而推进整体仓库任务的完成。
本实施例,任意一个第二服务器在执行成功第一任务之后,可以进一步创建第二任务,并将第二任务分流到多个第三服务器进行任务的执行。通过后续任务执行请求的自动创建,可以节省人工再次进行任务创建的时耗,完善了任务执行的整个流程,可以实现一次任务的创建带动一系列仓库任务的执行,提高了仓库任务执行的完善性和效率。
在一个实施例中,根据第一任务所对应的订单信息生成第二任务执行请求,包括:获取订单信息中的单号信息,以单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据包裹拣选数据生成创建拣选包裹的第二任务执行请求。
在本实施例中,当前第二服务器根据第一任务中的订单信息获取单号信息,以单号信息为单位将任务进行拆分。获取每一个单号信息分别对应的包裹拣选数据,并为每一个单号信息以及其对应的包裹拣选数据分别生成一个创建拣选包裹的第二任务执行请求。
具体地,依据一般的仓库作业流程,在预占用仓库库存的任务成功完成后,会进行包裹的拣选和包装作业。若第一任务为预占用仓库库存的任务,而且在生成第一任务执行请求时,以商品的品类为维度将订单信息进行了合并,则当前第二服务器在执行完其监听到的第一任务执行请求所对应的任务后,将订单信息按照单号进行拆分并生成创建拣选包裹的第二任务执行请求。
本实施例,由于每一个单号对应不同的客户,创建拣选包裹的任务需要以订单单号为单位为不同客户拣选不同包裹,所以在进行创建拣选包裹的任务时可以以单号为维度生成任务执行请求,通过本实施方式可以进一步细化作业流程,适应不同仓库作业,使得仓库任务的执行更加准确。
在一个实施例中,上述方法还包括:若当前第三服务器将当前第三服务器监听到的第二任务执行成功,则当前第三服务器根据第二任务所对应的订单信息生成第三任务执行请求,并将第三任务执行请求发送到第三消息队列;多个第四服务器分别对第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行。
其中,当前第三服务器为多个第三服务器中的任意一个;第三任务执行请求为包含在仓库任务中的与第二任务相关的后续任务;第四服务器可以是分布式集群中的任意一台服务器,第四服务器可以与第一服务器、第二服务器或第三服务器为同一台服务器。
在本实施例中,若当前第三服务器将当前第三服务器监听到的第二任务执行成功,则可以根据第二任务中所包含的订单信息生成第二任务对应的后续的第三任务,并根据第三任务生成相应的第三任务执行请求,然后将生成的第三任务执行请求发送至第三消息队列;分布式服务器集群中的多个第四服务器分别对第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求完成第三任务,从而推进整体仓库任务的完成。
本实施例,任意一个第三服务器在执行成功第二任务之后,可以进一步创建第三任务,并将第三任务分流到多个第四服务器进行任务的执行。通过后续任务执行请求的自动创建,作业人员不需要根据任务的不同进行界面的切换或任务执行指令的反复创建,可以缩减作业人员进行任务创建的时耗,完善任务执行的整个流程,实现一次任务的创建带动一系列仓库任务的执行,提高了仓库任务执行的完善性和效率。
在一个实施例中,根据第二任务所对应的订单信息生成第三任务执行请求,包括:获取订单信息中的包裹信息,以包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
在本实施例中,当前第三服务器根据第二任务中的订单信息获取包裹信息,以包裹信息为单位,获取每一个包裹分别对应的电子面单数据,并为每一个包裹分别生成一个申请电子面单的第三任务执行请求。
具体地,一般的仓库作业流程为,在拣选包裹创建成功后需要根据拣选包裹的内容为该包裹申请一个与包裹内容相对应的电子面单。由于每个包裹中的商品内容需要与电子面单上的数据内容相符,所以申请电子面单的任务可以以包裹信息为维度生成任务执行请求,通过本实施方式可以进一步细化作业流程,适应不同仓库作业,使得仓库任务的执行更加流畅和准确。
在一个实施例中,部分或全部第二服务器替代第三服务器和/或第四服务器,完成第三服务器和/或第四服务器的相应步骤。
在本实施例中,上述的第二服务器可以代替上述的第三服务器和/或第四服务器,可以实现服务器的充分利用,避免资源的闲置和浪费,在减小耗资的情况下完成相当量的工作。
下面结合一个在物流仓库场景下的应用实例对上述方法进行进一步描述,参考图2,图2示出了一个应用实例中的仓库任务执行的方法的流程示意图,包括步骤:
步骤S201:获取订单信息,锁单。
在本步骤中,分布式服务器集群中的一台第一服务器接收仓库任务执行指令,从该指令中获取各个订单所对应的数据信息,并利用分布式锁为各订单的数据信息进行加锁处理。在实际的作业操作过程中,作业人员可以通过客户端显示界面进行订单的刷选,在用户的执行权限被确认之后,客户端根据用户刷选出的订单数据生成相应的仓库任务执行指令,并将仓库任务执行指令发送到作业人员当前所关联的分布式服务器集群中的第一服务器。
步骤S202:按照商品品类维度,生成预占用仓库库存请求,发送消息队列。
在本步骤中,分布式服务器集群中的第一服务器可以按商品品类维度进行数据信息的分组,即针对商品的品类对接收到的订单信息进行分组,可以主要针对热点商品,将热点商品的数量进行合并,然后以数量合并后的商品为单位,生成对应各商品的预占用仓库库存的任务执行请求,然后将各商品的预占用仓库库存的任务执行请求发送到消息队列。
步骤S203:接收商品的预占用仓库库存请求,为商品分配库存。
在本步骤中,分布式服务器集群中的多个第二服务器对消息队列进行监听,多个第二服务器分别监听到商品A、商品B……商品N对应的请求,分别根据各自监听到的请求为商品A、商品B……商品N分配集货位、分配库存、或预扣减库存等。
步骤S204:按照订单单号维度,生成创建拣选包裹请求,发送消息队列。
在本步骤中,当第二服务器将其监听到的预占用仓库库存请求所对应的任务执行成功后,可以按照订单单号维度将单号进行拆分,并分别调取各单号对应的包裹拣选数据,生成以单号为单位的创建拣选包裹请求,并将请求发送到消息队列。
步骤S205:接收创建拣选包裹请求,拣选包裹。
在本步骤中,分布式服务器集群中的多个第三服务器对消息队列进行监听,多个第三服务器分别监听到单号1、单号2……单号N所分别对应的创建拣选包裹1、包裹2……包裹N的请求,分别根据各自监听到的请求创建拣选包裹1、包裹2……包裹N。
步骤S206:按照包裹维度,生成申请电子面单请求,发送消息队列。
在本步骤中,当第三服务器将其监听到的预占用仓库库存请求所对应的任务执行成功后,可以包裹为单位申请与包裹对应的电子面单,生成对应各包裹的申请电子面单请求,并将请求发送到消息队列。
步骤S207:接收请求,为包裹申请电子面单。
在本步骤中,分布式服务器集群中的多个第四服务器对消息队列进行监听,多个第四服务器分别监听到包裹1、包裹2……包裹N对应的请求,分别根据各自监听到的请求为包裹1、包裹2……包裹N申请电子面单。
步骤S208:任务结束,释放锁。
在本步骤中,在完成该批订单所对应的所有仓库任务后释放加在各订单上的分布式锁。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种分布式服务器集群300,包括:第一服务器302以及多个第二服务器304;第一服务器302,用于获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器302,还用于根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器304,用于分别对第一消息队列进行监听,各第二服务器304 分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,第一服务器302,还用于根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
在一个实施例中,第一服务器302,还用于将多个第一任务执行请求发送到消息队列服务器。
在一个实施例中,上述分布式服务器集群还可以包括:消息队列服务器,用于接收多个第一任务执行请求;生成第一消息队列,并将多个第一任务执行请求依次分发到第一消息队列。
在一个实施例中,第一服务器302,还用于对仓库任务执行指令中的多个订单分别进行加锁处理。
在一个实施例中,第二服务器304,还用于若将监听到的第一任务执行成功,则根据第一任务中包含的订单信息生成第二任务执行请求,并将第二任务执行请求发送到第二消息队列。
在一个实施例中,第二服务器304,还用于获取订单信息中的单号信息,以单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据包裹拣选数据生成创建拣选包裹的第二任务执行请求。
在一个实施例中,上述分布式服务器集群还包括:多个第三服务器,用于分别对第二消息队列进行监听,分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行。
在一个实施例中,第三服务器,还用于若监听到的第二任务执行成功,则根据第二任务所对应的订单信息生成第三任务执行请求,并将第三任务执行请求发送到第三消息队列。
在一个实施例中,第三服务器,还用于获取订单信息中的包裹信息,以包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
在一个实施例中,上述分布式服务器集群还包括:多个第四服务器,用于分别对第三消息队列进行监听,分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行。
在一个实施例中,部分或全部第二服务器304,还用于替代第三服务器和/或第四服务器,完成第三服务器和/或第四服务器的相应步骤。
关于上述分布式服务器集群的具体限定可以参见上文中对于仓库任务执行的方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种仓库任务执行的方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将多个第一任务执行请求发送到消息队列服务器;其中,消息队列服务器生成第一消息队列,并将多个第一任务执行请求依次分发到第一消息队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对仓库任务执行指令中的多个订单分别进行加锁处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前第二服务器将当前第二服务器监听到的第一任务执行成功,则当前第二服务器根据第一任务中包含的订单信息生成第二任务执行请求,并将第二任务执行请求发送到第二消息队列;多个第三服务器分别对第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取订单信息中的单号信息,以单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据包裹拣选数据生成创建拣选包裹的第二任务执行请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前第三服务器将当前第三服务器监听到的第二任务执行成功,则当前第三服务器根据第二任务所对应的订单信息生成第三任务执行请求,并将第三任务执行请求发送到第三消息队列;多个第四服务器分别对第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取订单信息中的包裹信息,以包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:部分或全部第二服务器替代第三服务器和/或第四服务器,完成第三服务器和/或第四服务器的相应步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
第一服务器获取仓库任务的执行指令;其中,仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;第一服务器根据订单信息生成多个第一任务执行请求,并将多个第一任务执行请求依次分发到第一消息队列;多个第二服务器分别对第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将多个第一任务执行请求发送到消息队列服务器;其中,消息队列服务器生成第一消息队列,并将多个第一任务执行请求依次分发到第一消息队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对仓库任务执行指令中的多个订单分别进行加锁处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前第二服务器将当前第二服务器监听到的第一任务执行成功,则当前第二服务器根据第一任务中包含的订单信息生成第二任务执行请求,并将第二任务执行请求发送到第二消息队列;多个第三服务器分别对第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取订单信息中的单号信息,以单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据包裹拣选数据生成创建拣选包裹的第二任务执行请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前第三服务器将当前第三服务器监听到的第二任务执行成功,则当前第三服务器根据第二任务所对应的订单信息生成第三任务执行请求,并将第三任务执行请求发送到第三消息队列;多个第四服务器分别对第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取订单信息中的包裹信息,以包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:部分或全部第二服务器替代第三服务器和/或第四服务器,完成第三服务器和/ 或第四服务器的相应步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM (EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种仓库任务执行的方法,所述方法包括:
第一服务器获取仓库任务的执行指令;其中,所述仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;
所述第一服务器根据所述订单信息生成多个第一任务执行请求,并将多个所述第一任务执行请求依次分发到第一消息队列;
多个第二服务器分别对所述第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行;
若当前第二服务器将所述当前第二服务器监听到的第一任务执行成功,则所述当前第二服务器根据所述第一任务中包含的订单信息生成第二任务执行请求,并将所述第二任务执行请求发送到第二消息队列;
多个第三服务器分别对所述第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行;
其中,所述根据所述第一任务中包含的订单信息生成第二任务执行请求,包括:获取订单信息中的单号信息,以所述单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据所述包裹拣选数据生成创建拣选包裹的第二任务执行请求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述订单信息生成多个第一任务执行请求,包括:
根据各订单信息中的商品信息,获取商品的数量信息和品类信息,将相同品类信息的商品的数量进行合并,根据数量合并后的商品信息生成预占用仓库库存的第一任务执行请求。
3.根据权利要求1所述的方法,其特征在于,所述将多个所述第一任务执行请求依次分发到第一消息队列,包括:
将多个所述第一任务执行请求发送到消息队列服务器;其中,消息队列服务器生成第一消息队列,并将多个所述第一任务执行请求依次分发到所述第一消息队列。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述第一服务器获取仓库任务执行指令之后,还包括:
对所述仓库任务执行指令中的多个订单分别进行加锁处理。
5.根据权利要求1所述的方法,其特征在于,还包括:
若当前第三服务器将所述当前第三服务器监听到的第二任务执行成功,则所述当前第三服务器根据所述第二任务所对应的订单信息生成第三任务执行请求,并将所述第三任务执行请求发送到第三消息队列;
多个第四服务器分别对所述第三消息队列进行监听,各第四服务器分别根据各自所监听到的第三任务执行请求进行相应的仓库任务的执行;
优选的,所述根据所述第二任务所对应的订单信息生成第三任务执行请求,包括:获取订单信息中的包裹信息,以所述包裹信息为单位维度,生成申请电子面单的第三任务执行请求。
6.根据权利要求5所述的方法,其特征在于,部分或全部所述第二服务器替代所述第三服务器和/或所述第四服务器,完成所述第三服务器和/或第四服务器的相应步骤。
7.一种分布式服务器集群,其特征在于,包括:第一服务器、多个第二服务器以及多个第三服务器;其中,
所述第一服务器,用于获取仓库任务的执行指令;其中,所述仓库任务的执行指令中包含多个订单,各订单分别对应有订单信息;
所述第一服务器,还用于根据所述订单信息生成多个第一任务执行请求,并将多个所述第一任务执行请求依次分发到第一消息队列;
所述多个第二服务器,用于分别对所述第一消息队列进行监听,各第二服务器分别根据各自所监听到的第一任务执行请求进行相应的仓库任务的执行;
若当前第二服务器将所述当前第二服务器监听到的第一任务执行成功,则所述当前第二服务器,用于根据所述第一任务中包含的订单信息生成第二任务执行请求,并将所述第二任务执行请求发送到第二消息队列;
所述多个第三服务器,用于分别对所述第二消息队列进行监听,各第三服务器分别根据各自所监听到的第二任务执行请求进行相应的仓库任务的执行;
其中,所述当前第二服务器,还用于获取订单信息中的单号信息,以所述单号信息为维度单位,分别调取各单号信息所对应的包裹拣选数据,并根据所述包裹拣选数据生成创建拣选包裹的第二任务执行请求。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6 中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6 中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093374.8A CN111258741B (zh) | 2020-02-14 | 2020-02-14 | 仓库任务执行的方法、分布式服务器集群及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093374.8A CN111258741B (zh) | 2020-02-14 | 2020-02-14 | 仓库任务执行的方法、分布式服务器集群及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258741A CN111258741A (zh) | 2020-06-09 |
CN111258741B true CN111258741B (zh) | 2022-08-19 |
Family
ID=70951092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093374.8A Active CN111258741B (zh) | 2020-02-14 | 2020-02-14 | 仓库任务执行的方法、分布式服务器集群及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258741B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065084B (zh) * | 2021-03-08 | 2022-12-23 | 南京苏宁软件技术有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
CN116308052B (zh) * | 2023-03-21 | 2023-12-12 | 深圳市赛诺梵科技有限公司 | 一种仓储管理系统及其控制方法 |
CN117541156A (zh) * | 2023-12-15 | 2024-02-09 | 西安英兆软件信息有限责任公司 | 仓库管理数据库数据处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107705179A (zh) * | 2017-10-10 | 2018-02-16 | 掌合天下(北京)信息技术有限公司 | 订单管理方法及装置 |
CN110599090B (zh) * | 2019-09-04 | 2022-03-01 | 明度智云(浙江)科技有限公司 | 一种仓储出库管理方法、服务器和存储介质 |
-
2020
- 2020-02-14 CN CN202010093374.8A patent/CN111258741B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111258741A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258741B (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
CN108845884B (zh) | 物理资源分配方法、装置、计算机设备和存储介质 | |
CN110399241B (zh) | 任务异常处理方法、装置、计算机设备和可读存储介质 | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN112035235A (zh) | 任务调度方法、系统、设备及存储介质 | |
CN111258774A (zh) | 流程处理方法、装置、计算机设备及存储介质 | |
CN114168302A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112688799A (zh) | 基于Redis集群的客户号分配方法以及分配装置 | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN113946427A (zh) | 用于多操作系统的任务处理方法、处理器及存储介质 | |
CN113010306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
CN109040491B (zh) | 挂机行为处理方法、装置、计算机设备及存储介质 | |
CN108521524B (zh) | 坐席协办任务管理方法、装置、计算机设备及存储介质 | |
US9323509B2 (en) | Method and system for automated process distribution | |
CN113535439B (zh) | 业务请求处理方法、装置、设备及存储介质 | |
CN114327818A (zh) | 一种算法调度方法、装置、设备及可读存储介质 | |
CN115220887A (zh) | 调度信息的处理方法、任务处理系统、处理器和电子设备 | |
CN114217954A (zh) | 作业调度方法、装置、计算机设备、存储介质 | |
CN113626222A (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
CN113052571A (zh) | 工作流关键路径的处理方法及装置 | |
CN113176906A (zh) | 模型管理方法、装置、计算机设备和存储介质 | |
CN111586135A (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 |