CN116483544B - 任务处理方法、装置、计算机设备和存储介质 - Google Patents
任务处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116483544B CN116483544B CN202310714837.1A CN202310714837A CN116483544B CN 116483544 B CN116483544 B CN 116483544B CN 202310714837 A CN202310714837 A CN 202310714837A CN 116483544 B CN116483544 B CN 116483544B
- Authority
- CN
- China
- Prior art keywords
- task
- data processing
- queue
- target
- queues
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 320
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000015654 memory Effects 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 230000005856 abnormality Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 abstract description 11
- 238000007790 scraping Methods 0.000 abstract description 7
- 239000000955 prescription drug Substances 0.000 description 64
- 230000008569 process Effects 0.000 description 13
- 239000003814 drug Substances 0.000 description 9
- 229940079593 drug Drugs 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000002688 persistence Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 229940126532 prescription medicine Drugs 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H20/00—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
- G16H20/10—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to drugs or medications, e.g. for ensuring correct administration to patients
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- Entrepreneurship & Innovation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Chemical & Material Sciences (AREA)
- Medicinal Chemistry (AREA)
- Operations Research (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Quality & Reliability (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书实施方式提供了一种任务处理方法、装置、计算机设备和存储介质。所述方法包括:接收目标数据处理任务;按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列;将目标数据处理任务加入目标任务队列;多个任务队列分别对应有任务消费模块;任务消费模块用于批处理相应任务队列中的数据处理任务。本说明书实施方式通过按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列,并将接收到的目标数据处理任务加入该目标任务队列以用于填充该目标任务队列中的空闲位置,使得该目标任务队列的等待新任务加入的时间较短,缩短了任务队列的“攒批”时间,降低了应用整体的任务处理延迟,进而一定程度降低了应用的响应延迟。
Description
技术领域
本说明书中实施方式关于云计算领域,具体关于一种任务处理方法、装置、计算机设备和存储介质。
背景技术
随着网络搜索、电子商务、社交网络等在线数据密集型应用的发展,在线数据密集型应用对响应速度提出了越来越高的要求。因此,如何降低该应用的响应延迟成为了亟待解决的问题。任务处理延迟是影响该应用响应延迟的关键因素,而对多个任务进行批处理是降低任务处理延迟的重要手段。
目前,对多个任务进行批处理主要通过“排队”、“攒批”和“批处理”三个过程实现。在需要处理的任务数量较多的情况下,可能存在多个任务队列。此时,若出现新任务,则需要在多个存在空闲位置的任务队列中为新任务指派加入的队列。通常情况下,会将新任务指派给任务数量最少的任务队列,以维持每个任务队列的均衡,然而也可能导致较先存在空闲位置的队列等待较长时间才有新任务加入,使得队列的“攒批”时间较长,导致队列任务处理延迟较高,进而影响应用的响应延迟。
因此,相关技术中存在任务队列形成批处理的效率较低的技术问题。
发明内容
有鉴于此,本说明书中多个实施方式致力于提供一种任务处理方法、装置、计算机设备和存储介质,以一定程度上缩短较先存在空闲位置的队列等待新任务加入的时间,从而提升整体上提升了针对任务进行批处理的效率。
本说明书中一个实施方式提供一种任务处理方法,包括:接收目标数据处理任务;按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列;其中,多个任务队列分别对应有任务消费模块;所述任务消费模块用于批处理相应任务队列中的数据处理任务;将所述目标数据处理任务加入所述目标任务队列。
本说明书的一个实施方式提供一种任务处理装置,包括:接收模块,用于接收目标数据处理任务;确定模块,用于按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列;其中,多个任务队列分别对应有任务消费模块;所述任务消费模块用于批处理相应任务队列中的数据处理任务;入队模块,用于将所述目标数据处理任务加入所述目标任务队列。
本说明书实施方式提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述实施方式所述的方法。
本说明书实施方式提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序被处理器执行时实现上述实施方式所述的方法。
本说明书提供的多个实施方式,通过在多个任务队列中确定最先存在空闲位置的目标任务队列,并将接收到的目标数据处理任务加入该目标任务队列以用于填充该空闲位置,使得该目标任务队列的等待新任务加入的时间较短,即,目标任务队列可以在较短时间内完成“攒批”以进行“批处理”,缩短了任务队列的“攒批”时间,降低了应用整体的任务处理延迟,进而降低了应用的响应延迟。
附图说明
图1为本说明书的一个实施方式提供的任务处理系统的多端交互示意图。
图2为本说明书的一个实施方式提供的任务处理系统中的服务器内部数据传输示意图。
图3为本说明书的一个实施方式提供的任务处理方法的流程示意图。
图4为本说明书的一个实施方式提供的任务处理装置的示意图。
图5为本说明书的一个实施方式提供的计算机设备的示意图。
具体实施方式
对多个任务进行批处理是降低在线数据密集型应用的响应延迟的重要技术手段。对多个任务进行批处理可以通过“排队”、“攒批”和“批处理”三个过程实现。其中,“排队”可以指多个任务的排列过程,即,多个未经处理的任务按一定顺序排列并暂时存储在队列中。“攒批”可以指任务队列中的任务数量的累加过程,即,每当有新任务加入任务队列,任务队列中的任务数量加1,直至任务队列中的任务数量达到能够进行批处理的数量阈值。“批处理”可以指排列在任务队列中的多个任务的处理过程,即,一次性执行任务队列中的数量阈值个任务的处理过程。
由于队列的处理性能受队列长度的影响,在需要处理的任务数量较多的情况下,若仅存在单个任务队列,该队列的长度可能过长,则可能出现因队列拥堵造成的性能瓶颈,从而降低处理效率。因此,在需要处理的任务数量较多的情况下,可能存在多个并行的任务队列,以实现任务分流。此时,若出现新任务,则可能存在以下两种新任务入队情况。
第一种新任务入队情况可以为新任务直接加入存在空闲位置的任务队列。在这种情况下,在多个任务队列中可能仅有一个任务队列存在空闲位置,则新任务可以直接加入该任务队列。
第二种新任务入队情况可以为新任务加入指派的任务队列。在这种情况下,在多个任务队列中可能有多个任务队列存在空闲位置,则需要在多个存在空闲位置的任务队列中为新任务指派加入的队列。
针对第二种新任务入队情况,在相关技术中常用随机指派、最短队列指派、分类指派以及循环指派等,指派方法为新任务指派加入的队列。
随机指派可以为指派新任务随机加入任一队列。具体的,存在空闲位置的各个任务队列可以分别对应一个队列标识。可以随机生成表示任一任务队列的队列标识,并指派新任务加入该队列标识对应的任务队列。
在这种情况下,由于新任务加入任务队列的过程存在随机性,任务分流可能“不均匀”,即,新任务可能有较大可能性被指派加入一部分任务队列,而仅有较小可能性被指派加入另一部分任务队列。此时,新任务仅有较小可能性加入的任务队列中的任务数量可能需要较长时间才能达到批处理数量阈值,即,新任务仅有较小可能性加入的任务队列的“攒批”时间可能较长。
最短队列指派可以为指派新任务加入队列长度最短的队列。具体的,队列长度可以表示队列中的任务数量,可以直接指派新任务加入队列长度最短,即,任务数量最少的任务队列。
在这种情况下,由于新任务每次均被指派加入任务数量最少的任务队列,对于在新任务到达时任务数量较为接近批处理数量阈值的任务队列,其中的空闲位置可能需要等待较长时间才能被填充,即,新任务到达时任务数量较为接近批处理数量阈值的任务队列的“攒批”时间可能较长。
分类指派可以为根据新任务的任务类型,指派新任务加入用于排列该任务类型任务的任务队列。具体的,各个任务可以对应不同的任务类型,相应的,各个任务队列也可以对应不同的任务类型,以用于排列和暂时存储不同类型的任务。可以指派新任务加入与其任务类型对应的任务队列。
在这种情况下,由于新任务的任务类型具有不确定性,可能在某一时段到达的新任务均对应某一任务类型,导致用于排列该任务类型任务的任务队列“攒批”时间较短,而其他任务队列的“攒批”时间较长。
循环指派可以为按照指定顺序指派新任务加入队列。具体的,存在空闲位置的各个任务队列可以分别对应一个队列标识。可以按照队列标识的指定变化规律对任务队列进行排序,再指派新任务依次加入已排序的任务队列。例如,队列标识为英文字母,可以按照字母表顺序对任务队列进行排序,再指派新任务依次加入已排序的任务队列。
循环指派解决了上述三种队列指派方法各自存在的问题,但由于循环指派将新任务“较均匀”地指派至各个任务队列,可能导致各个队列等待新任务加入的平均时间较长,从而导致多个队列“攒批”的平均时间较长。
因此,有必要提供一种任务处理方法,通过按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列,将接收到的目标数据处理任务加入该目标任务队列以用于填充该目标任务队列中的空闲位置,使得目标任务队列等待新任务加入的时间较短,从而目标任务队列可以在较短时间内完成“攒批”以进行“批处理”,缩短了任务队列的“攒批”时间,降低了应用整体的任务处理延迟,进而降低了应用的响应延迟。
本说明书的一个实施方式提供一种任务处理系统的应用场景示例。该任务处理系统可以包括客户端和服务器。其中,客户端可以用于接收由用户操作输入的数据或信息,服务器可以用于执行任务处理方法。在本场景示例中,以客户端的用户为消费者和医生,任务处理方法应用于电商平台服务器以处理电商平台的处方药订单为例,对本说明书实施方式提供的任务处理方法进行说明。
请参阅图1。在本场景示例中,消费者在电商平台下单购买处方药,必须先由医生开具处方,才能根据医生开具的处方购买处方药。具体的,例如,消费者进入电商平台提供的消费者客户端后,可以在消费者客户端的药品购买界面选择其希望购买的处方药,填写包括用药人基本情况、用药人当前症状、用药人既往病史等与药品使用相关的用药人信息,并点击“下单”按钮。消费者客户端在接收到消费者对“下单”按钮的点击操作后,接收消费者填写的用药人信息并获取消费者选择的处方药的基本信息,根据处方药基本信息和用药人信息生成处方药订单,并将该处方药订单发送给电商平台服务器。
请参阅图2。图2中的实线箭头可以表示正常情况下的数据传输,虚线箭头可以表示异常情况下的数据传输,箭头指向可以表示数据流动方向。电商平台服务器可以包括事务处理模块、持久化模块、批处理调度模块以及算法模块,上述模块可以分布在同一服务器中,也可以分布在不同服务器中,本说明书实施方式对服务器中多个模块的分布不作具体限制。上述模块之间可以通过网络进行数据传输。具体的,事务处理模块可以用于实现电商平台服务器与电商平台的消费者客户端和医生客户端的数据交互,包括派单子模块和结果处理子模块。持久化模块可以用于持久化存储从电商平台客户端接收到的处方药订单。批处理调度模块可以用于对接收到的处方药订单进行队列调度和批处理,包括预处理子模块、任务队列子模块、匹配执行子模块、派单任务补偿子模块以及任务重试队列子模块。算法模块可以用于对批处理的处方药订单进行算法匹配,以获取较适合为批处理的处方药订单开具处方的医生。
电商平台服务器在从电商平台客户端接收到处方药订单后,可以由事务处理模块的派单子模块根据该处方药订单生成派单任务数据,并将派单任务数据传输给批处理调度模块中的预处理子模块。预处理子模块可以为派单任务数据中的处方药订单指派处方药订单队列,同时将派单任务数据传输给持久化模块进行持久化存储。派单任务数据可以包括处方药订单数据和派单数据。其中,处方药订单数据可以包括该订单中药品的基本信息和该订单的基本信息。派单数据可以包括该订单的排序评分数据。
在任务队列子模块中可以存在多个处方药订单队列,多个处方药订单队列分别对应有队列标识和批处理调度机制。批处理调度机制可以包括对队列中的处方药订单执行批处理的批处理条件。不同处方药订单队列对应的批处理调度机制可以相同,也可以不同,本说明书实施方式对多个处方药订单队列对应的批处理调度机制可以不作具体限制。
在一些情况下,批处理调度模块在接收到派单任务数据后,由预处理子模块、任务队列子模块和匹配执行子模块对派单任务数据进行处理。具体处理过程如下。
预处理子模块可以按照多个处方药订单队列被创建的时间顺序依次检查多个处方药订单队列中是否存在空闲位置,在检查到存在空闲位置的处方药订单队列的情况下,可以将该处方药订单队列确定为目标处方药订单队列,将目标处方药订单队列的队列标识添加至派单任务数据中以生成排队任务数据,并将排队任务数据传输给任务队列子模块。
任务队列子模块在接收到排队任务数据后,可以将处方药订单加入目标处方药订单队列中,并按照排队任务数据中该处方药订单的排序评分数据调整该订单在目标处方药订单队列中的位置。在目标处方药订单队列达到其对应的批处理条件的情况下,任务队列子模块可以触发批处理调度事件。
匹配执行子模块可以监听批处理调度事件。在捕捉到批处理调度事件的情况下,可以向任务队列子模块发送批处理任务获取请求。任务队列子模块在接收到批处理任务获取请求后,可以将位于目标处方药订单队列头部的指定数量个处方药订单传输给匹配执行子模块。匹配执行子模块在接收到指定数量个处方药订单后,可以将指定数量个处方药订单传输给算法模块。在接收到算法模块反馈的针对指定数量个处方药订单的算法决策结果后,匹配执行子模块可以将该算法决策结果传输给事务处理模块的结果处理子模块,并将已处理的指定数量个处方药订单从目标处方药订单队列头部删除。
批处理调度模块可以对在任务队列子模块中暂时存储的处方药订单以及在匹配执行子模块中处理的处方药订单的订单状态进行监控。在处方药订单的订单状态出现异常的情况下,批处理调度模块可以根据订单状态出现异常的原因,向不同子模块发送任务异常信息,以由不同子模块对处于异常订单状态的处方药进行处理。
在网络异常或事务处理模块工作异常情况下,例如,在出现网络抖动或网络断开的情况下,处方药订单可能在较长时间内未被处理。在这种情况下,批处理调度模块内的派单任务补偿子模块可以处理处于异常状态的处方药订单。
具体的,批处理调度模块在监控到某一处方药订单的订单状态在指定时间阈值的时长内均处于“未处理”状态的情况下,可以向派单任务补偿子模块发送任务异常信息,该任务异常信息可以包括较长时间处于“未处理”状态的处方药订单的订单标识。派单任务补偿子模块在接收到任务异常信息后,可以根据任务异常信息中的订单标识生成派单任务数据获取请求,将该请求传输给持久化模块。持久化模块在接收到派单任务数据获取请求后,可以将与该请求中的订单标识对应的派单任务数据传输给派单任务补偿子模块。派单任务补偿子模块在接收到派单任务数据后,可以为派单任务数据中的处方药订单确定目标处方药订单队列,并生成补偿排队任务数据,将补偿排队任务数据传输给任务队列子模块。派单任务补偿子模块采用的目标处方药订单队列的确定方法和补偿排队任务数据的生成方法和预处理子模块采用的方法基本相同,此处不再赘述。
在匹配执行子模块工作异常的情况下,处方药订单可能处理失败。在这种情况下,批处理调度模块内的任务重试队列子模块可以处理处于异常状态的处方药订单。
具体的,批处理调度模块在监控到某一处方药订单的订单状态处于“处理失败”状态的情况下,可以向任务重试队列子模块发送任务异常信息,该任务异常信息可以包括订单状态为“处理失败”的处方药订单。任务重试队列子模块在接收到任务异常信息后,可以将任务异常信息中的处方药订单排列在处方药订单重新匹配队列中,处方药订单重新匹配队列中对应有批处理调度机制,该批处理调度机制与多个处方药订单队列对应的批处理调度机制基本相同,此处不再赘述。在处方药订单重新匹配队列达到其对应的批处理条件的情况下,任务重试队列子模块可以触发批处理调度事件。
处方药订单的订单状态不会影响算法模块和结果处理子模块对处方药订单的处理。
具体的,算法模块在接收到匹配执行子模块传输的指定数量个处方药订单后,可以通过机器学习算法模型指派与指定数量个处方药订单最匹配的开方医生,并可以将算法决策结果反馈给匹配执行子模块。其中,用于得到算法决策结果的机器学习模型可以是预先训练模型,也可以是历史模型,也可以是在历史模型的基础上进行改进得到的优化模型,本说明书实施方式对机器学习算法模型不作具体限制。
具体的,结果处理子模块在接收到匹配执行子模块传输的与指定数量个处方药订单对应的算法决策结果后,可以将指定数量个处方药订单发送给电商平台提供的医生客户端。在医生为指定数量个处方药订单分别开具处方后,医生客户端可以将与指定数量个处方药订单分别对应的处方发送给结果处理子模块。结果处理子模块可以将处方添加至分别与处方对应的处方药订单中,并根据处方对处方药订单的订单信息进行修改,以生成指定数量个携带处方的处方药订单。再将携带处方的处方药订单发送给消费者客户端,在消费者完成携带处方的处方药订单的支付后,可以成功购买处方药。
本说明书实施方式提供一种任务处理系统。所述任务处理系统可以包括客户端和服务器。本说明书实施方式对客户端和服务器的数量不作具体限制。客户端和服务器之间可以通过有线或无线网络相互连接。
客户端可以是具有网络访问功能、数据存储功能和显示功能的电子设备。具体的,例如,客户端可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、智能电视等。其中,智能可穿戴设备包括但不限于智能手环、智能手表、智能眼镜、智能头盔等。或者,客户端也可以为能够运行于所述电子设备中的具有人机交互界面的计算机程序。
服务器可以是具有一定运算处理能力的电子设备。具体的,服务器可以具有网络通信模块、处理器和存储器等。服务器也可以是指运行于所述电子设备中的计算机程序。服务器还可以为分布式服务器,可以为具有多个处理器、存储器、网络通信模块等协同运作的系统。或者,服务器还可以为若干服务器形成的服务器集群。或者,随着科学技术的发展,服务器还可以是能够实现说明书实施方式相应功能的新的技术手段。例如,可以是基于量子计算实现的新形态的“服务器”。
请参阅图3。本说明书的一个实施方式提供一种任务处理方法。所述任务处理方法可以应用于服务器。所述任务处理方法可以包括以下步骤。
步骤S110:接收目标数据处理任务。
在本实施方式中,数据处理任务可以为指示对指定数据执行数据处理过程以得到数据处理结果的程序指令。具体的,例如,数据处理任务可以为电商平台订单处理任务,也可以为网络搜索任务、社交应用消息响应任务等。在本实施方式中,目标数据处理任务可以为等待加入任务队列以被执行指定数据处理过程的数据处理任务。具体的,可以将接收到的全部数据处理任务均作为目标数据处理任务,也可以将接收到的全部数据处理任务中的部分数据处理任务作为目标数据处理任务。
在本实施方式中,接收目标数据处理任务,可以通过直接将接收到的数据处理任务作为目标数据处理任务。具体的,可以在接收到数据处理任务后,直接将其作为目标数据处理任务进行后续任务处理。在这种情况下,可以不对数据处理任务进行持久化存储。在一些实施方式中,接收目标数据处理任务,可以通过采用指定筛选条件在接收到的数据处理任务中进行筛选,将通过筛选的数据处理任务作为目标数据处理任务。具体的,可以在接收到数据处理任务后,直接采用指定筛选条件对数据处理任务进行筛选,将通过筛选的数据处理任务作为目标数据处理任务。
步骤S120:按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列。
在一些情况下,为减少位于任务队列尾部的数据处理任务等待被执行批处理的时间,同时也为提高应用整体的吞吐量,可以设置多个并行的任务队列。
在本实施方式中,多个任务队列可以分别对应有任务消费模块,任务消费模块可以用于批处理相应任务队列中的数据处理任务。具体的,任务消费模块可以执行一次批处理以完成对应的任务队列中的全部数据处理任务的处理,也可以执行一次批处理以完成对应的任务队列中的部分数据处理任务的处理。
在本实施方式中,空闲位置可以表示任务队列中还未被数据处理任务填充的位置。具体的,一个数据处理任务可以填充任务队列中的一个空闲位置。
在本实施方式中,按照指定顺序在多个任务队列中确定目标任务队列,可以通过按照指定顺序依次检查多个任务队列,将最先检查到的存在空闲位置的任务队列确定为目标任务队列。
步骤S130:将所述目标数据处理任务加入所述目标任务队列。
在本实施方式中,在确定目标任务队列后,可以指派目标数据处理任务加入该目标任务队列以填充该目标任务队列中的空闲位置,从而缩短了目标任务队列中空闲位置被填充的等待时间,使得目标任务队列中的数据处理任务可以在较短时间内完成“攒批”以进行“批处理”,降低了应用整体的任务处理延迟,进而降低了应用响应延迟。
在本实施方式中,将目标数据处理任务加入目标任务队列,可以通过将目标数据处理任务的任务属性数据暂时存储在目标任务队列的空闲位置对应的存储空间中。具体的,在一个数据处理任务填充任务队列中的一个空闲位置的情况下,可以将数据处理任务的任务标识暂时存储在任务队列的一个空闲位置对应的存储空间中。在一个数据处理任务填充任务队列中的多个空闲位置的情况下,可以将数据处理任务的任务标识暂时存储在任务队列的一个空闲位置对应的存储空间中,将数据处理任务的其它任务属性数据暂时存储在与存储任务标识的空闲位置相邻的至少一个空闲位置对应的存储空间中。
在本说明书实施方式中,通过按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列,并将接收到的目标数据处理任务加入该目标任务队列以用于填充该空闲位置,使得该目标任务队列的等待新任务加入的时间较短,即,目标任务队列可以在较短时间内完成“攒批”以进行“批处理”,缩短了任务队列的“攒批”时间,降低了应用整体的任务处理延迟,进而降低了应用的响应延迟。
在一些实施方式中,所述指定顺序可以包括:所述任务队列被创建的时间顺序;或者,依照所述任务队列的队列优先级,针对多个任务队列的排列顺序。
在一些情况下,可以按照任务队列被创建的时间顺序依次检查任务队列中是否存在空闲位置,此时,最先检查到的存在空闲位置的任务队列即为最先存在空闲位置的任务队列。为满足不同事务处理需求,在一些情况下,任务队列可能对应有队列优先级,队列优先级可能会影响对任务队列进行检查的顺序。
在本实施方式中,可以根据需要处理的数据处理任务动态创建任务队列,任务队列的数量可以由数据处理任务的数量确定。具体的,在队列容量一定的情况下,若在较短时间内需要处理大量数据处理任务,则可以根据数据处理任务的数量创建多个任务队列以并行处理数据处理任务。其中,队列容量可以表示任务队列能够允许排列的数据处理任务的最大数量。具体的,例如,预设队列容量为30,需要在1秒内执行对300个数据处理任务的处理,则对这300个数据处理任务的处理过程具体如下。
按照接收到数据处理任务的先后顺序,接收到的前30个数据处理任务可以直接加入最先被创建的任务队列1以等待被执行批处理,已完成批处理的数据处理任务将会被从任务队列中删除。在接收到第31个数据处理任务时,若在前30个数据处理任务中存在已完成批处理的数据处理任务,则可以将第31个数据处理任务加入任务队列1中的空闲位置。若前30个数据处理任务均未完成批处理,则任务队列1中已不存在空闲位置。此时,可以查询是否创建任务队列2,在查询到已创建任务队列2且任务队列2中存在空闲位置的情况下,可以将第31个数据处理任务加入任务队列2。在查询到未创建任务队列2的情况下,可以先创建任务队列2,再将第31个数据处理任务加入任务队列2。重复上述数据处理任务入队或者创建任务队列的过程,直至第300个数据处理任务加入任务队列以等待被执行批处理。
在本实施方式中,队列优先级可以用于表示对任务队列中的数据处理任务执行批处理的先后顺序。具体的,可以较先对队列优先级较高的任务队列中的数据处理任务执行批处理。一个队列优先级可以对应一个任务队列,也可以对应多个任务队列。本说明书实施方式对一个队列优先级对应的任务队列的数量不作具体限定。
在本实施方式中,依照所述任务队列的队列优先级,针对多个任务队列的排列顺序,可以包括依照队列优先级从高到低,对多个任务队列的排列顺序。具体的,队列优先级可以用队列优先级标识表示。例如,队列优先级标识可以包括数字,数字越小对应的队列优先级可以越高。队列优先级标识也可以包括英文字母,英文字母在字母表顺序中的排序越靠前,队列优先级可以越高。可以根据队列优先级标识对多个任务队列进行排序。例如,在队列优先级标识为数字的情况下,可以按照数字从小到大顺序排列多个任务队列。在队列优先级标识为英文字母的情况下,可以按照字母表顺序排列多个任务队列。
在一个队列优先级对应多个任务队列的情况下,所述指定顺序还可以包括:在依照任务队列的队列优先级,针对多个任务队列的排列顺序的基础上,任务队列被创建的时间顺序。具体的,可以先依照队列优先级对多个任务队列排序,在各个队列优先级对应的多个任务队列中,可以依照任务队列被创建的时间顺序对同一优先级的多个任务队列排序。
在一些实施方式中,所述任务处理方法还可以包括:存储接收到的数据处理任务;在接收到任务异常信息的情况下,从存储的数据处理任务中,读取与所述任务异常信息对应的数据处理任务作为所述目标数据处理任务。
在网络传输故障、指令执行故障等情况下,未经处理的数据处理任务可能被遗漏。为降低遗漏数据处理任务可能造成的不良影响,可以建立异常任务处理机制,将未经处理的异常数据处理任务重新加入任务队列,以降低遗漏数据处理任务的可能性。
在本实施方式中,任务异常信息可以用于指示被遗漏的未经处理的数据处理任务。具体的,数据处理任务的任务状态可以包括“未处理”、“排队中”、“批处理中”以及“批处理完成”等。可以对接收到的数据处理任务的任务状态进行监控,并对数据处理任务处于各个状态的持续时间进行计时。在某一数据处理任务处于“未处理”状态的时间超过指定时间阈值的情况下,可以认定该数据处理任务处于异常状态。可以根据处于异常状态的数据处理任务的任务标识生成任务异常信息,任务异常信息可以包括处于异常状态的数据处理任务的任务标识。
在本实施方式中,存储接收到的数据处理任务,可以对接收到的数据处理任务进行集中存储,即,将数据处理任务的全部数据在同一数据库中。
在一些实施方式中,存储接收到的数据处理任务,也可以对接收到的数据处理任务进行分布式存储,即,将数据处理任务的部分数据存储在一个数据库中,另一部分数据存储在另一数据库中。例如,可以将数据处理任务的任务标识和任务类型存储在第一数据库中,将数据处理任务除任务类型以外的其余数据存储在第二数据库中。
在本实施方式中,在接收到任务异常信息的情况下,从存储的数据处理任务中读取与任务异常信息对应的数据处理任务作为目标数据处理任务,可以先根据任务异常信息中的任务标识生成异常任务获取请求,异常任务获取请求可以包括处于异常状态的数据处理任务的任务标识;再向存储数据处理任务的数据库发送该异常任务获取请求,并将数据库返回的数据处理任务作为目标数据处理任务。具体的,在对数据处理任务进行集中存储的情况下,可以直接向存储数据库发送异常任务获取请求,并将存储数据库返回的数据处理任务作为目标数据处理任务。在对数据处理任务进行分布式存储的情况下,可以向存储数据量较少的第一数据库发送异常任务获取请求,由第一数据库和存储数据量较多的第二数据库之间的数据交互得到与异常任务获取请求中的任务标识对应的数据处理任务,将第一数据库返回的数据处理任务作为目标数据处理任务。
在一些实施方式中,所述任务处理方法还可以包括:检查所述目标任务队列包括的数据处理任务的数量;在所述目标任务队列包括的数据处理任务的数量不小于第一数量阈值的情况下,触发数量阈值事件,以用于所述任务消费模块在捕捉到所述数量阈值事件的情况下,对所述目标任务队列包括的所述第一数量阈值个数据处理任务执行批处理。
在一些情况下,在较短时间段内可能接收到大量数据处理任务。例如,在数据处理任务为电商平台订单处理任务时,在电商平台进行大型促销活动的情况下,可能在1秒内可以接收到300~450个数据处理任务。此时,为减少任务队列拥堵,可以设置数量阈值事件,在任务消费模块捕捉到数量阈值事件的情况下,对任务队列中的数据处理任务执行批处理。
在本实施方式中,数量阈值事件可以用于作为任务消费模块对目标任务队列中的数据处理任务执行批处理的提示事件。为降低因任务队列“攒批”造成的延迟,在本实施方式中,第一数量阈值可以设置为较小的值。例如,第一数量阈值可以为5。
在本实施方式中,检查目标任务队列包括的数据处理任务的数量,可以通过在每次目标数据处理任务加入目标任务队列后,检查暂时存储在目标任务队列中的数据处理任务的数量。
在一些实施方式中,任务消费模块在捕捉到所述数量阈值事件的情况下,对所述目标任务队列包括的数据处理任务执行批处理,可以包括:在所述任务消费模块捕捉到所述数量阈值事件的情况下,将所述目标任务队列的任务执行锁设置为第一锁定状态;对所述第一数量阈值个数据处理任务执行批处理;在完成所述批处理的情况下,将所述目标任务队列的任务执行锁设置为第一释放状态;从所述目标任务队列中删除所述批处理所执行的数据处理任务。
在一些情况下,在任务消费模块对目标任务队列包括的数据处理任务执行批处理的过程中,可能有新的数据处理任务加入目标任务队列。在这种情况下,若对新加入的数据处理任务和此前暂时存储在目标任务队列中的第一数量阈值个数据处理任务共同执行批处理,可能会增加批处理的运算复杂度,进而影响批处理的处理效率。为减少新加入目标任务队列的数据处理任务对批处理效率的影响,可以为目标任务队列设置任务执行锁,以仅对指定数量的数据处理任务执行批处理。
在本实施方式中,目标任务队列可以设置有任务执行锁,任务执行锁可以用于控制加入目标任务队列的数据处理任务能否被执行批处理。具体的,任务执行锁可以具有第一锁定状态和第一释放状态。在任务执行锁处于第一锁定状态的情况下,允许数据处理任务加入目标任务队列,但任务消费模块不会捕捉数量阈值事件,不会对加入的数据处理任务执行批处理。在任务执行锁处于第一释放状态的情况下,数据处理任务可以加入目标任务队列,且任务消费模块可以捕捉数量阈值,也可以对加入的数据处理任务执行批处理。
在本实施方式中,对第一数量阈值个数据处理任务执行批处理,可以通过对位于目标任务队列头部的第一数量阈值个数据处理任务执行批处理。
在短时间接收到大量数据处理任务的情况下,在任务执行锁处于第一锁定状态的情况下加入目标任务队列的数据处理任务的数量可能超过第一数量阈值。然而,由于在任务执行锁处于第一锁定状态的情况下不会捕捉数据阈值事件,可能造成数据处理任务被遗漏。为解决这一问题,可以为任务消费模块设置数量阈值事件触发机制。具体的,任务消费模块可以在完成批处理后,检查目标任务队列包括的数据处理任务的数量。在目标任务队列包括的数据处理任务的数量不小于第一数量阈值的情况下,任务消费模块可以触发数量阈值事件,并捕捉该数量阈值事件以设置任务执行锁状态和执行批处理。
在一些实施方式中,所述任务管理方法还可以包括:在计时器每次完成计时周期后,请求获取时间锁的控制权限,至获得所述时间锁的控制权限;在根据所述时间锁的控制权限将所述时间锁设置为所述第二锁定状态的情况下,触发时间阈值事件;在所述任务消费模块捕捉到所述时间阈值事件的情况下,针对所述时间阈值事件对应的任务队列包括的不多于第一数量阈值个数据处理任务执行批处理。
在较长时间才能接收到少量数据处理任务的情况下,若仍以数量阈值作为触发批处理的条件,由于任务队列“攒批”再进行“批处理”所造成的延迟可能会超过对接收到的每个数据处理直接进行处理造成的延迟。为解决这一问题,可以为任务队列设置时间锁,将时间锁的锁定时间达到指定锁定时长作为触发批处理的条件。
在本实施方式中,每个任务队列可以设置有时间锁,时间锁可以用于控制触发时间阈值事件。具体的,时间锁可以具有第二锁定状态和第二释放状态,在处于所述第二锁定状态达成指定锁定时长后,时间锁可以自动变更为第二释放状态。
在本实施方式中,每个任务队列可以对应有用于周期性执行计时周期的计时器。每个计时器执行的计时周期可以相同。例如,计时周期可以为100ms。
在本实施方式中,时间锁的控制权限可以用于设置时间锁的状态。具体的,在获得时间锁的控制权限的情况下,可以将处于第二释放状态的时间锁设置为第二锁定状态。
在本实施方式中,时间阈值事件可以用于作为任务消费模块对任务队列中的数据处理任务执行批处理的提示事件。具体的,每个时间阈值事件可以对应一个任务队列。例如,时间阈值事件可以携带有触发该时间阈值事件的计时器标识,计时器标识可以对应任务队列的队列标识,从而建立时间阈值事件与任务队列之间的对应关系。对任务消费模块而言,时间阈值事件和数量阈值事件可以是相互独立的提示事件,任务消费模块在捕捉到任一提示事件的情况下,针对该提示事件对应的任务队列中的至多第一数量阈值个数据处理任务执行批处理。
在本实施方式中,时间阈值事件可以通过计时器触发。在一些实施方式中,时间阈值事件也可以由其他模块或单元触发。
在本实施方式中,在任务消费模块捕捉到时间阈值事件的情况下,时间阈值事件对应的任务队列包括的数据处理任务的数量可能小于第一数量阈值,也可能不小于第一数量阈值。在数据处理任务的数量小于第一数量阈值的情况下,任务消费模块可以对时间阈值事件对应的任务队列包括的全部数据处理任务执行批处理。在数据处理任务的数量不小于第一数量阈值的情况下,任务消费模块可以对位于时间阈值事件对应的任务队列头部的第一数量阈值个数据处理任务执行批处理。
在一些实施方式中,所述任务处理方法还可以包括:分别统计每个任务队列在指定时间段内的数据处理任务的累计数量;销毁所述累计数量小于第二数量阈值的任务队列。
在较长时间才能接收到少量数据处理任务的情况下,例如,在1秒仅能接收到1~3个数据处理任务的情况下,被创建时间较晚或队列优先级较低的任务队列可能在较长时间内没有数据处理任务加入,但该任务队列对应的计时器仍处于工作状态,仍会触发时间阈值事件,即,该任务队列仍会占用运算资源和存储空间。为减少运算资源和存储空间浪费,可以对该任务队列进行“回收”。
为减少重复创建任务队列造成的运算资源浪费,在本实施方式中,指定时间段可以设为较长时间段,第二数量阈值可以设为较大值。例如,指定时间段可以为36小时,第二数量阈值可以设为30。
在本实施方式中,销毁所述累计数量小于第二数量阈值的任务队列,可以通过注销与该任务队列对应的计时器。具体的,可以先完成对全部累计数量的统计,再将各个队列的累计数量与第二数量阈值进行比较,一次性注销与累计数量小于第二数量阈值的任务队列对应的计时器。也可以针对每个任务队列进行累计数量的统计和比较,在累计数量小于第二数量阈值的情况下,注销与该任务队列对应的计时器。
在一些实施方式中,所述任务处理方法还可以包括:根据目标数据处理任务的排序评分数据调整目标数据处理任务在目标任务队列中的排列位置。
在一些情况下,不同数据处理任务的任务优先级不同。若数据处理任务被执行批处理的顺序仅受数据处理任务加入任务队列的先后顺序的影响,则可能导致优先级较高的数据处理任务需要在任务队列中排列较长时间才能被执行批处理。为缩短优先级较高的数据处理在任务队列中的排列时间,可以在数据处理任务加入任务队列后,依照数据处理任务的优先级对任务队列中的数据处理任务进行排序,将优先级较高的数据处理任务排列在任务队列头部,以使得优先级较高的数据处理任务较先被执行批处理。
在本实施方式中,排序评分数据可以表示目标数据处理任务的任务优先级。具体的,排序评分数据的数值越大,表示的任务优先级可以越高。可以对数据处理任务的多个任务属性进行评分,再对多个任务属性评分进行加权求和,以得到排序评分数据。例如,用于进行评分的任务属性可以包括:任务类型、任务创建时间和任务处理失败次数,三个属性的权重系数可以递减。
请参阅图4。本说明书的一个实施方式还提供一种任务处理装置。所述任务处理装置可以包括:接收模块、获取模块和发送模块。
接收模块,用于接收目标数据处理任务。
确定模块,用于按照指定顺序在多个任务队列中确定最先存在空闲位置的目标任务队列;其中,多个任务队列分别对应有任务消费模块;所述任务消费模块用于批处理相应任务队列中的数据处理任务。
入队模块,用于将所述目标数据处理任务加入所述目标任务队列。
关于任务处理装置实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。所述任务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图5。本说明书实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施方式中的任务处理方法。
本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得,该计算机执行上述任一实施方式中的任务处理方法。
本说明书实施方式还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述任一实施方式中的任务处理方法。
本说明书多个实施方式中所涉及的用户信息或者用户账户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据等),均为经过用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律规定和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
可以理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本发明的范围。
可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程构成任何限定。
可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。
除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本说明书的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
接收目标数据处理任务;
按照指定顺序在多个任务队列中确定存在空闲位置的首个任务队列作为目标任务队列;其中,多个任务队列分别对应有任务消费模块;所述任务消费模块用于批处理相应任务队列中的数据处理任务;
将所述目标数据处理任务加入所述目标任务队列。
2.根据权利要求1所述的方法,其特征在于,所述指定顺序包括:所述任务队列被创建的时间顺序;或者,依照所述任务队列的队列优先级,针对多个任务队列的排列顺序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
存储接收到的数据处理任务;
在接收到任务异常信息的情况下,从存储的数据处理任务中,读取与所述任务异常信息对应的数据处理任务作为所述目标数据处理任务;其中,所述任务异常信息携带有与处于异常状态的数据处理任务的任务标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检查所述目标任务队列包括的数据处理任务的数量;
在所述目标任务队列包括的数据处理任务的数量不小于第一数量阈值的情况下,触发数量阈值事件,以用于所述任务消费模块在捕捉到所述数量阈值事件的情况下,对所述目标任务队列包括的所述第一数量阈值个数据处理任务执行批处理。
5.根据权利要求4所述的方法,其特征在于,所述目标任务队列设置有任务执行锁;所述任务执行锁具有第一锁定状态和第一释放状态;所述任务消费模块在捕捉到所述数量阈值事件的情况下,对所述目标任务队列包括的数据处理任务执行批处理,包括:
在所述任务消费模块捕捉到所述数量阈值事件的情况下,将所述目标任务队列的任务执行锁设置为第一锁定状态;
对所述第一数量阈值个数据处理任务执行批处理;
在完成所述批处理的情况下,将所述目标任务队列的任务执行锁设置为第一释放状态;
从所述目标任务队列中删除所述批处理所执行的数据处理任务。
6.根据权利要求1所述的方法,其特征在于,每个任务队列设置有时间锁;所述时间锁具有第二锁定状态和第二释放状态;所述时间锁处于所述第二锁定状态达成指定锁定时长后,自动变更为所述第二释放状态;每个任务队列对应有用于周期性执行计时周期的计时器;所述方法还包括:
在所述计时器每次完成计时周期后,请求获取所述时间锁的控制权限,至获得所述时间锁的控制权限;其中,仅在所述时间锁处于所述第二释放状态的情况下,能够取得所述时间锁的控制权限;
在根据所述时间锁的控制权限将所述时间锁设置为所述第二锁定状态的情况下,触发时间阈值事件;
在所述任务消费模块捕捉到所述时间阈值事件的情况下,针对所述时间阈值事件对应的任务队列包括的不多于第一数量阈值个数据处理任务执行批处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别统计每个任务队列在指定时间段内的数据处理任务的累计数量;
销毁所述累计数量小于第二数量阈值的任务队列。
8.一种任务处理装置,其特征在于,包括:
接收模块,用于接收目标数据处理任务;
确定模块,用于按照指定顺序在多个任务队列中确定存在空闲位置的首个任务队列作为目标任务队列;其中,多个任务队列分别对应有任务消费模块;所述任务消费模块用于批处理相应任务队列中的数据处理任务;
入队模块,用于将所述目标数据处理任务加入所述目标任务队列。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310714837.1A CN116483544B (zh) | 2023-06-15 | 2023-06-15 | 任务处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310714837.1A CN116483544B (zh) | 2023-06-15 | 2023-06-15 | 任务处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483544A CN116483544A (zh) | 2023-07-25 |
CN116483544B true CN116483544B (zh) | 2023-09-19 |
Family
ID=87227135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310714837.1A Active CN116483544B (zh) | 2023-06-15 | 2023-06-15 | 任务处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483544B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727357A (zh) * | 2008-10-31 | 2010-06-09 | 新思科技有限公司 | 用于分配计算中心中资源的方法和装置 |
CN105718317A (zh) * | 2016-01-15 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法及装置 |
CN106330987A (zh) * | 2015-06-15 | 2017-01-11 | 交通银行股份有限公司 | 动态负荷均衡方法 |
CN109451076A (zh) * | 2018-12-29 | 2019-03-08 | 乐蜜有限公司 | 一种网络请求的合并处理方法、装置及电子设备 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
JP2019179280A (ja) * | 2018-03-30 | 2019-10-17 | 日本電気株式会社 | ジョブ実行管理システム、およびジョブ実行管理方法 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN111782360A (zh) * | 2020-06-28 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式任务调度方法及装置 |
CN112671832A (zh) * | 2020-12-03 | 2021-04-16 | 中国科学院计算技术研究所 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
CN112885327A (zh) * | 2021-01-21 | 2021-06-01 | 平安科技(深圳)有限公司 | 语音合成方法、装置、设备及存储介质 |
CN114968373A (zh) * | 2022-07-12 | 2022-08-30 | 飞腾信息技术有限公司 | 指令分派方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8910168B2 (en) * | 2009-04-27 | 2014-12-09 | Lsi Corporation | Task backpressure and deletion in a multi-flow network processor architecture |
-
2023
- 2023-06-15 CN CN202310714837.1A patent/CN116483544B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727357A (zh) * | 2008-10-31 | 2010-06-09 | 新思科技有限公司 | 用于分配计算中心中资源的方法和装置 |
CN106330987A (zh) * | 2015-06-15 | 2017-01-11 | 交通银行股份有限公司 | 动态负荷均衡方法 |
CN105718317A (zh) * | 2016-01-15 | 2016-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种任务调度方法及装置 |
JP2019179280A (ja) * | 2018-03-30 | 2019-10-17 | 日本電気株式会社 | ジョブ実行管理システム、およびジョブ実行管理方法 |
CN111324427A (zh) * | 2018-12-14 | 2020-06-23 | 深圳云天励飞技术有限公司 | 一种基于dsp的任务调度方法及装置 |
CN109451076A (zh) * | 2018-12-29 | 2019-03-08 | 乐蜜有限公司 | 一种网络请求的合并处理方法、装置及电子设备 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN111782360A (zh) * | 2020-06-28 | 2020-10-16 | 中国工商银行股份有限公司 | 分布式任务调度方法及装置 |
CN112671832A (zh) * | 2020-12-03 | 2021-04-16 | 中国科学院计算技术研究所 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
CN112885327A (zh) * | 2021-01-21 | 2021-06-01 | 平安科技(深圳)有限公司 | 语音合成方法、装置、设备及存储介质 |
CN114968373A (zh) * | 2022-07-12 | 2022-08-30 | 飞腾信息技术有限公司 | 指令分派方法、装置、电子设备及计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
Configurable Batch-Processing Discovery from Event Logs;Anastasiia Pika;ACM Transactions on Management Information Systems;第13卷(第3期);全文 * |
SBlue:一种增强Blue稳定性的主动式队列管理算法;吴春明, 姜明;通信学报(第03期);全文 * |
一种参数自适应的主动队列管理算法―自适应BLUE;刘伟彦;孙雁飞;张顺颐;刘斌;;电子与信息学报(第02期);全文 * |
多队列共享内存空间算法研究;祁建宏;安容瑾;;重庆科技学院学报(自然科学版)(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116483544A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831420B (zh) | 用于任务调度的方法、相关装置及计算机程序产品 | |
US11157324B2 (en) | Partitioning for delayed queues in a distributed network | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US9529626B2 (en) | Facilitating equitable distribution of thread resources for job types associated with tenants in a multi-tenant on-demand services environment | |
US9286316B2 (en) | Enterprise level data collection systems and methodologies | |
EP2898655B1 (en) | System and method for small batching processing of usage requests | |
US10455264B2 (en) | Bulk data extraction system | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
CN108111554B (zh) | 一种访问队列的控制方法及装置 | |
CN107077476A (zh) | 利用动态类型的大数据对事件进行丰富以用于事件处理 | |
US20190238605A1 (en) | Verification of streaming message sequence | |
CN110058940B (zh) | 一种多线程环境下的数据处理方法及装置 | |
CN110928655A (zh) | 一种任务处理方法及装置 | |
CN111586126A (zh) | 小程序预下载方法、装置、设备及存储介质 | |
CN113742109B (zh) | 第三方服务对接方法、装置、设备及存储介质 | |
CN109218385B (zh) | 处理数据的方法和装置 | |
CN108847278B (zh) | 线上问诊自动分配方法、装置、计算机设备和存储介质 | |
CN114090207A (zh) | 一种异步任务执行的方法 | |
CN109670932B (zh) | 信贷数据核算方法、装置、系统和计算机存储介质 | |
CN116483544B (zh) | 任务处理方法、装置、计算机设备和存储介质 | |
CN111259045B (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN112307046A (zh) | 数据采集方法和装置、计算机可读存储介质、电子设备 | |
CN108898482B (zh) | 多产品的签约方法及装置 | |
CN111737274B (zh) | 交易数据的处理方法、装置和服务器 | |
CN108307081B (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 |