CN117651075A - 任务消息传输方法、装置、计算机设备及计算机可读存储介质 - Google Patents

任务消息传输方法、装置、计算机设备及计算机可读存储介质 Download PDF

Info

Publication number
CN117651075A
CN117651075A CN202410101868.4A CN202410101868A CN117651075A CN 117651075 A CN117651075 A CN 117651075A CN 202410101868 A CN202410101868 A CN 202410101868A CN 117651075 A CN117651075 A CN 117651075A
Authority
CN
China
Prior art keywords
task
execution
message
execution system
task execution
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.)
Granted
Application number
CN202410101868.4A
Other languages
English (en)
Other versions
CN117651075B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410101868.4A priority Critical patent/CN117651075B/zh
Publication of CN117651075A publication Critical patent/CN117651075A/zh
Application granted granted Critical
Publication of CN117651075B publication Critical patent/CN117651075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种任务消息传输方法、装置、计算机设备及计算机可读存储介质,与资源调度技术相关,资源可以如任务消息。本申请可以首先获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,任务执行数据包括任务执行***处理任务消息过程的指标数据,然后基于任务执行数据,确定任务执行***的执行阶段信息,若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。本申请可以提升任务消息的传输灵活性。

Description

任务消息传输方法、装置、计算机设备及计算机可读存储介质
技术领域
本申请涉及云技术领域,具体涉及一种任务消息传输方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着云技术的发展,云厂商可以提供愈发多样的云服务,具体地,云服务使用方可以通过计算机设备向云厂商发送请求消息,云厂商可以基于请求消息生成任务消息,并向任务执行***传输任务消息,业务传输***可以对任务消息进行处理,以向云服务使用方提供其所请求的云服务,而实际工作场景下,业务执行***的资源配置、任务消息处理量等均会发生变化,但上述方案无法感知这些变化,使得任务消息的传输过程难以与任务执行***的任务处理情况匹配,任务消息的传输过程灵活性较差。
发明内容
本申请实施例提供一种任务消息传输方法、装置、计算机设备及计算机可读存储介质,可以提升任务消息的传输灵活性。
本申请实施例提供一种任务消息传输方法,包括:
获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,任务执行数据包括任务执行***处理任务消息过程的指标数据;
基于任务执行数据,确定任务执行***的执行阶段信息;
若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
相应地,本申请实施例还提供了一种任务消息传输装置,包括:
执行数据获取模块,用于获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,执行数据包括任务执行***处理任务消息过程的指标数据;
执行阶段确定模块,用于基于任务执行数据,确定任务执行***的执行阶段信息;
第一阶段模块,用于若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
在本申请的一些实施例中,任务消息传输装置还包括第二阶段模块,其中,
第二阶段模块,用于若执行阶段信息表征任务执行***处于第二执行阶段,向任务执行***传输在第二执行阶段待传输的任务消息。
在本申请的一些实施例中,任务执行***包括多个用于存储任务消息的消息队列,任务消息传输装置还包括执行结果获取模块、***状态确定模块和第一状态模块,其中,
执行结果获取模块,用于获取任务执行***中各个消息队列的拥堵指标数据,并获取任务执行***执行的第一数量个任务消息各自的执行结果数据;
***状态确定模块,用于基于拥堵指标数据和执行结果数据,确定任务执行***的***状态信息;
第一状态模块,用于若***状态信息表征任务执行***处于第一***状态,根据在第一***状态期间待传输的第三任务消息的任务类型信息,对第三任务消息进行处理。
在本申请的一些实施例中,第一状态模块包括丢弃子模块和传输子模块,其中,
丢弃子模块,用于若在第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型匹配,丢弃第三任务消息;
传输子模块,用于若在第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型不匹配,计算第三任务消息的第二优先级,并基于第二优先级将第三任务消息***缓冲队列的第二目标位置,以通过缓冲队列向任务执行***传输第三任务消息。
在本申请的一些实施例中,任务执行***还包括多个任务工作线程,任务工作线程用于执行任务消息,任务执行数据包括任务工作线程执行的任务消息的任务执行数量、以及任务执行***中执行任务消息的任务工作线程的执行线程总数;执行阶段确定模块包括求和子模块、融合子模块和确定子模块,其中,
求和子模块,用于若***状态信息表征任务执行***处于第二***状态,对所有任务工作线程的任务执行数量求和,得到任务执行总数;
融合子模块,用于对任务执行总数和执行线程总数进行融合,得到任务执行***的任务执行平均数;
确定子模块,用于根据任务执行平均数,确定任务执行***的执行阶段信息。
在本申请的一些实施例中,执行阶段信息包括第一阶段信息和第二阶段信息,确定子模块包括第一确定单元和第二确定单元,其中,
第一确定单元,用于若任务执行平均数与预设第一阈值匹配,确定任务执行***对应第一阶段信息,第一阶段信息表征任务执行***处于第一执行阶段;
第二确定单元,用于若任务执行平均数与预设第一阈值不匹配,确定任务执行***对应第二阶段信息,第二阶段信息表征任务执行***处于第二执行阶段。
在本申请的一些实施例中,***状态确定模块包括目标确定子模块、成功率子模块和***状态子模块,其中,
目标确定子模块,用于若执行结果信息指示任务消息执行成功,确定任务消息为目标任务消息,以得到第二数量个目标任务消息;
成功率子模块,用于基于第一数量和第二数量,计算任务执行***的任务执行成功率;
***状态子模块,用于根据拥堵指标数据、任务执行成功率和任务线程总数,确定任务执行***的***状态信息。
在本申请的一些实施例中,***状态子模块包括第一状态单元和第二状态单元,其中,
第一状态单元,用于若任务执行成功率与预设第二阈值匹配、拥堵指标数据与预设第三阈值匹配、或任务线程总数与预设第四阈值匹配,确定任务执行***对应第一状态信息,第一状态信息表征任务执行***处于第一***状态;
第二状态单元,用于若任务执行成功率与预设第二阈值不匹配、拥堵指标数据与预设第三阈值不匹配、且任务线程总数与预设第四阈值不匹配,确定任务执行***对应第二状态信息,第二状态信息表征任务执行***处于第二***状态。
在本申请的一些实施例中,任务消息传输装置还包括线程总数获取模块、线程满载模块和线程新增模块,其中,
线程总数获取模块,用于获取任务执行***中存在的任务工作线程的任务线程总数;
线程满载模块,用于若执行线程总数与任务线程总数匹配,确定任务执行***处于线程满载状态;
线程新增模块,用于在任务执行***处于线程满载状态、且执行线程总数与预设第四阈值不匹配的情况下,触发任务执行***新增任务工作线程。
在本申请的一些实施例中,任务消息传输装置还包括停止模块,其中,
停止模块,用于在任务执行***处于线程满载状态、执行线程总数与预设第四阈值匹配、且在线程满载状态下待传输的任务消息的数量与执行线程总数不匹配的情况下,停止向缓冲队列***任务消息。
在本申请的一些实施例中,第一阶段模块包括时长子模块和优先级子模块,其中,
时长子模块,用于获取在第一执行阶段待传输的第一任务消息的传输等待时长,并查找第一任务消息对应的等待时长阈值;
优先级子模块,用于基于传输等待时长和等待时长阈值,计算第一任务消息的第一优先级。
在本申请的一些实施例中,优先级子模块包括第一计算单元和第二计算单元,其中,
第一计算单元,用于若传输等待时长小于或等于等待时长阈值,确定第一任务消息对应的第一预设分值,并基于传输等待时长和第一预设分值,计算第一任务消息的第一优先级;
第二计算单元,用于若传输等待时长大于等待时长阈值,确定第一任务消息对应的第一预设分值和第二预设分值,并基于第一预设分值、等待时长阈值、第二预设分值和传输等待时长和等待时长阈值之间的差值,计算第一任务消息的第一优先级。
在本申请的一些实施例中,第一阶段模块包括排序子模块和***子模块,其中,
排序子模块,用于对第一优先级和缓冲队列中的至少一个已有优先级进行排序,得到第一优先级的排序结果;
***子模块,用于根据排序结果,确定第一任务消息在缓冲队列中的第一目标位置,并将第一任务消息***第一目标位置。
在本申请的一些实施例中,第一计算单元可以具体用于:
若传输等待时长小于或等于等待时长阈值,获取第一预设类型分值表,第一预设类型分值表包括多个预设任务类型信息、以及与每个预设任务类型信息分别对应的预设分值;
从第一预设类型分值表中,查找第一任务消息的任务类型信息对应的第一预设分值。
相应地,本申请实施例还提供一种计算机设备,包括处理器和存储器,存储器存储有计算机程序,处理器用于运行存储器内的计算机程序,以实现本申请实施例提供的任务消息传输方法中的步骤。
相应地,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行以实现本申请实施例提供的任务消息传输方法中的步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行以实现本申请实施例提供的任务消息传输方法中的步骤。
本申请实施例可以获取任务执行***的任务执行数据,任务执行数据可以包括任务执行***处理任务消息过程的相关指标数据,然后通过任务执行数据确定任务执行***的执行阶段信息,由任务执行***处理任务消息的情况(通过任务执行数据表征),可以确定任务执行***所属的不同执行阶段(通过执行阶段表征),若任务执行***处于第一执行阶段,第一执行阶段比如任务消息的单位处理量较大的阶段,本申请实施例可以对第一执行阶段待传输的任务消息进行优先级调度,具体可以计算任务消息的优先级,并根据优先级将其***缓冲队列的目标位置,使得缓冲队列中高优先级的任务消息可以更快向业务执行***传输,有效提升任务消息的传输灵活性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的任务消息传输方法的场景示意图;
图2是本申请实施例提供的任务消息传输方法的流程示意图;
图3是本申请实施例提供的云厂商平台的示意图;
图4是本申请实施例提供的任务消息传输方法的另一流程示意图;
图5是本申请实施例提供的任务消息传输方法的另一流程示意图;
图6是本申请实施例提供的任务消息传输装置的结构示意图;
图7是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应”于以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在本申请的若干实施例中,涉及到用户信息(如任务消息等)等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
本申请主要涉及云计算服务提供商(云厂商)在向用户提供云计算服务时,如何更加灵活高效地传输和处理来自用户的任务消息,从而提升云计算服务的供给稳定性。
本申请实施例了提供一种任务消息传输方法、装置、计算机设备及计算机可读存储介质,任务消息传输装置可以集成在任务消息传输***(简称任务传输***)中,任务传输***可以集成在至少一个计算机设备上,该计算机设备可以包括终端、服务器在内的至少一种。
本申请的任务执行***可以集成在至少一个计算机设备上,该计算机设备可以包括终端、服务器在内的至少一种。
本申请的任务传输***和任务执行***可以集成在同一个(多个)计算机设备上,也可以各自集成在不同的计算机设备上,具体可以根据实际情况灵活处理,在此不再赘述。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中,任务传输***可以接收实时生成的任务消息,并将该任务消息向任务执行***传输,任务执行***可以处理任务消息。
为了提升任务消息传输过程和任务消息处理过程的一致性,任务传输***可以获取任务执行***的任务执行数据,任务执行数据包括任务执行***处理任务消息过程的指标数据,然后可以根据任务执行数据,确定任务执行***的执行阶段信息。
在任务执行***处于不同执行阶段时,使用不同的方式向任务执行***传输任务消息,具体若阶段执行信息表征任务执行***处于第一执行阶段,可以计算在第一执行阶段待传输的任务消息的优先级,并根据优先级将该任务消息***缓冲队列的目标位置,从而通过缓冲队列将任务消息依次向任务执行***下发;若执行阶段信息表征任务执行***处于第二执行阶段,可以向任务执行***传输在第二执行阶段待传输的任务消息。
比如,参见图1,任务传输***和任务执行***可以分别集成在服务器1和服务器2,任务传输***可以将接收到的任务消息向任务执行***传输,任务传输***可以获取任务执行***执行任务消息过程的指标数据(任务执行数据),进而由任务执行数据确定任务执行***的执行阶段信息,再根据执行阶段信息,采用不同的方式向任务执行***传输任务消息。
如执行阶段信息表征任务执行***处于执行高峰期,可以计算高分期期间接收到的任务消息1的优先级1,再根据优先级1将任务消息1保存在缓冲队列的位置1处,从而通过缓冲队列将优先级较高的任务消息1更快地向任务执行***传输;又如执行阶段信息表征任务执行***处于非执行高峰期,可以直接将非执行高峰期接的任务消息2向任务执行***传输。
图1为本申请的任务消息传输***的应用场景的一个示例,主要用于介绍而非本申请的任务消息传输***,在实际应用本申请实施例所描述的技术方案的过程中,可以对任务消息传输***所包含的计算机设备、以及各个计算机设备所执行的步骤进行灵活调整,并不局限于图1中描述的内容。
下面将结合实施例对本申请的任务消息传输方法进行进一步介绍。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
图2示出了本申请的任务消息传输方法的一个流程示意图,任务消息传输方法可以集成在任务传输***,任务传输***可以集成在任务消息传输装置,任务消息传输装置可以如服务器,如图2,任务消息传输方法可以包括:
110、获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,任务执行数据包括任务执行***处理任务消息过程的指标数据。
其中,任务消息可以包括来自云服务使用方/云服务提供方的请求消息所涉及的若干任务的信息,任务可以包括云计算模式下可能涉及的任何任务,如计算库存、创建云服务器、云服务器故障迁移、修改密码、删除/修改/新增数据等等,在不同的应用场景下,任务消息的具体指代对象可以不同,比如任务消息可以为云服务使用方发送的请求消息,也可以为云厂商平台基于请求消息生成的新消息,等等。
其中,任务执行***可以包括处理任务消息的***,任务执行***可以执行任务消息所包括的任务,使得云厂商可以向云服务使用方提供其请求的云服务,也使得云厂商平台可以在云服务提供方的控制下稳定运行。具体地,任务执行***可以包括多个消息队列和多个任务工作线程,消息队列可以和至少一个任务工作线程对应,任务工作线程可以和至少一个消息队列对应,消息队列可以暂存任务消息,并向任务工作线程有序下发这些任务消息。通过至少一个任务工作线程可以执行任务消息对应任务。
其中,任务执行数据可以包括任务执行***在执行任务消息过程的相关指标数据,任务执行数据可以包括消息队列的指标数据、任务工作线程的指标数据等,消息队列的指标数据可以包括消息队列自身、以及消息队列中暂存的任务消息的指标数据,具体可以如消息队列中的任务消息数量、消息队列的总数、非空消息队列总数、消息队列中任务消息的停留时长,消息队列的拥堵指标数据等等;任务工作线程的指标数据可以包括任务工作线程自身、以及任务工作线程处理任务消息的指标数据,具体可以如任务工作线程的任务消息处理数量、任务工作线程的总数、异常任务工作线程数量、处理任务消息的任务工作线程的数量等等。
集成本申请任务消息传输方案的任务传输***、以及任务执行***均属于云厂商平台,当然云厂商平台还包括其他相关***和功能模块,在此不做过多赘述。
在本申请实施例中,云厂商平台可以接收任务执行***上报的任务执行数据,还可以对接收到的部分任务执行数据进行处理,得到新的任务执行数据,本申请实施例获取的任务执行数据可以包括上报的任务执行数据和经处理的任务执行数据。云厂商平台的相关模块或***(如对任务执行数据进行处理的模块、任务执行***等)可以向任务传输***传输任务执行数据。
在本申请的一些实施例中,可以首先基于一些任务执行数据确定任务执行***的***状态信息,再根据***状态信息所表征的任务执行***的***状态,对不同任务状态期间待传输的任务消息进行不同的处理。
其中,***状态信息可以包括表征***是否为正常运行状态的信息,***状态信息可以包括第一状态信息和第二状态信息,第一状态信息可以表征任务执行***处于第一***状态,第一***状态可以包括***异常状态,第二状态信息可以表征任务执行***处于第一***状态,第一***状态可以包括***正常状态。
在本申请的一些实施例中,任务执行数据可以包括各个消息队列的拥堵指标数据,拥堵指标数据可以包括反映消息队列拥堵程度的数据,比如,消息队列中堆积的任务消息的数量可以作为一种拥堵指标数据,具体可以在实际应用场景灵活选用,在此不做限制。
如果拥堵指标数据与预设第三阈值匹配,确定任务执行***对应第一状态信息,此处的预设第三阈值可以预先设置,匹配可以包括大于、大于和等于、拥堵指标数据和预设第三阈值之间的差值大于某数值、等等。比如,多个消息队列可以对应拥堵指标数据1,若拥堵指标数据1大于阈值4,可以确定任务执行***处于异常状态。
在本申请的一些实施例中,也可以获取任务执行***中第一数量个任务消息各自的执行结果数据,执行结果数据可以表征任务消息对应任务是否执行成功,然后可以基于执行结果数据评估任务执行***的任务执行成功率,任务执行成功率的计算过程可以包括:若执行结果信息指示任务消息执行成功,确定该任务消息为目标任务消息,对所有执行结果信息进行上述操作,最终得到第二数量个目标任务消息,第二数量小于或等于第一数量,对第二数量和第一数量求商,得到任务执行成功率。
若任务执行成功率与预设第二阈值匹配,确定任务执行***对应第一状态信息,此处的预设第二阈值可以预先设置,匹配可以包括小于、小于和等于、任务执行成功率和预设第二阈值之间的差值大于/小于某数值、等等。
比如,获取100个任务消息各自的执行结果信息,并将执行结果信息表征执行成功的任务消息确定为目标任务消息,得到30个目标任务消息,计算任务执行成功率1=20/100=0.2,0.2小于阈值0.3,确定任务执行***处于异常状态。
在本申请的一些实施例中,任务执行数据可以包括任务执行***中执行任务消息的任务工作线程的任务线程总数,受限于***性能等因素,任务执行***中可存在的任务工作线程的数量(预设第四阈值)是有限的,因此可以比较任务线程总数与预设第四阈值是否匹配,若匹配确定任务执行***对应第一状态信息。此处的匹配可以如相等,二者差值小于预设阈值等等。
比如,获取任务执行***1的任务线程总数C,若任务线程总数C等于该任务执行***1的最大线程数1,确定此处任务执行***1已达扩容上限,处于异常状态。
本申请实施例中,若***状态信息表征任务执行***处于第一***状态,对于在第一***状态期间待传输的任务消息(如第三任务消息),可以根据任务消息的任务类型的信息对其进行处理。具体地,若第三任务消息的任务类型信息与预设任务类型匹配,丢弃第三任务消息;若第三任务消息的任务类型信息与预设任务类型不匹配,计算第三任务消息的第二优先级,并基于第二优先级将第三任务消息***缓冲队列的第二目标位置,以通过缓冲队列向任务执行***传输第三任务消息。
由此本申请在确定任务执行***处于异常状态后,可以首先根据任务类型信息,将重要性较低的任务消息丢弃,初步减轻***异常任务执行***的任务处理负担,提升任务执行消息乃至云厂商平台在异常情况下的稳定性。
其中,任务类型信息可以包括任务消息包括的任务的类型信息,具体地,任务类型的划分方式可以有多种,本申请为了保证云服务使用方对云服务的流畅使用,可以按照任务对应的主体(使用方/提供方)进行划分、按照任务对使用方的重要程度进行划分、或按照任务自身特点进行划分,等等。
预设任务类型可以包括对于使用方来说重要程度较低的类型、任务对应主体不是使用方,等等,此处的匹配可以理解为相等、相似等,预设任务类型和匹配均可以在实际应用场景中灵活选择和处理,在此不做限制。
比如,确定任务执行***1为异常状态后,可以获取任务消息3的任务类型A,判断任务类型A是否与预设类型1匹配,若匹配,直接将任务消息3丢弃;若不匹配,可以计算任务消息3的优先级3,再基于优先级3确定任务消息3在缓冲队列中的位置1,最终通过缓冲队列将任务消息3向业务执行***传输。
相应地,在本申请的一些实施例中,若任务执行成功率与预设第二阈值不匹配、拥堵指标数据与预设第三阈值不匹配、且任务线程总数与预设第四阈值不匹配,确定任务执行***对应第二状态信息,第二状态信息表征任务执行***处于第二***状态。
比如,若任务执行***2的拥堵指标数据2大于阈值4、任务执行成功率2大于阈值0.3且任务线程总数2等于该任务执行***2的最大线程数2,可以确定任务执行***2处于正常状态。
在本申请的一些实施例中,在任务执行***的第二状态信息表征其处于第二***状态的情况下,可以执行步骤120。
120、基于任务执行数据,确定任务执行***的执行阶段信息。
其中,阶段执行信息可以包括表征任务执行***所处阶段的信息,任务执行***可以处于不同的阶段,比如,执行阶段信息可以包括第一阶段信息和第二阶段信息,第一阶段信息可以表征任务执行***处于第一执行阶段,第一执行阶段可以如任务执行***的处理压力较大的高峰期,第二阶段信息可以表征任务执行***处于第二执行阶段,第二执行阶段可以如任务执行执行***的处理压力正常或较低的非高峰期。
阶段的划分标准可以包括任务执行***处理任务消息的繁忙程度,繁忙程度的量化方式可以如,任务执行***在单位时间所有工作的任务工作线程执行任务消息数量的均值,均值越高则越繁忙;阶段的划分标准也可以包括待传输任务消息的数量与任务执行***的当前处理能力之间的差异,差异的量化方式可以如,待传输的任务消息数量与任务执行***在历史时间段处理的任务消息的总数之间的比值,比值大于1则任务执行***将要处理更多任务消息。
对应地,基于任务执行数据确定执行阶段信息的方式可以包括多种。
在本申请的一些实施例中,可以通过任务执行平均数,任务执行平均数也即单位时间所有工作的任务工作线程执行任务消息数量的均值,具体地,任务执行数据可以包括任务工作***中工作的任务工作线程执行的任务消息的任务执行数量、以及任务执行***中工作的任务工作线程的执行线程总数,此处工作的任务工作线程包括处理任务消息的任务工作线程。任务执行数量和执行线程总数的统计时间可以保持一致。可以对所有任务执行数量求和,得到任务执行总数,再对任务执行总数和任务执行线程总数求商,即可得到任务执行***的任务执行平均数。
然后可以通过预设第一阈值与任务执行平均数的匹配结果确定执行阶段信息,若任务执行平均数和预设第一阈值匹配,确定任务执行***对应第一阶段信息,若任务执行平均数和预设第一阈值不匹配,确定任务执行***对应第二阶段信息。其中,预设第一阈值可以预先设置,匹配可以包括大于、大于和等于、任务执行平均数和预设第一阈值之间的差值大于某数值、等等。
比如,可以获取业务执行***的200个执行任务消息的任务工作线程各自的任务执行数量:任务数量1-任务数量200,(任务数量1+……+任务数量200)/200=任务执行平均数1,任务执行平均数1大于6(预设第一阈值),确定任务执行***对应第一阶段信息,也即知任务执行***处于高峰期。
在本申请的一些实施例中,任务执行数据可以包括任务工作***中工作的任务工作线程执行的任务消息的任务执行数量,此处工作的任务工作线程包括处理任务消息的任务工作线程。可以对所有任务执行数量求和,得到任务执行总数,再获取云厂商平台中待传输的任务消息的待传输总数,计算待传输总数与任务执行总数之间的比值,若此比值大于某预先确定的数值,确定任务执行***对应第一阶段信息;若此比值不大于该预先确定的数值,确定任务执行***对应第二阶段信息。
比如,可以确定任务执行***在历史时间段1的处理的任务消息的总数:任务执行总数1,获取云厂商平台中待传输的任务消息的总数:待传输总数1,计算P=任务执行总数1/待传输总数1,若P大于0.95,确定任务执行***处于高峰期,否则确定任务执行***处于非高峰期。
130、若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
其中,缓冲队列可以包括暂时存储任务消息的队列,缓冲队列可以如优先级队列,在新的任务消息需要进入缓冲队列时,其可以根据该任务消息的优先级将其暂存至缓冲队列中合适的位置处。由此可以在第一执行阶段,将重要性更高、更急迫的任务消息通过缓冲队列,更加快速地传输至任务执行***。
本申请实施例在确定任务执行***的执行阶段消息表征其处于第一执行阶段后,可以对在此区间待传输的任务消息(如第一任务消息)进行处理。具体地,可以计算第一任务消息的第一优先级,再根据该第一优先级将第一任务消息***缓冲队列的第一目标位置。
具体地,确定第一任务消息的第一优先级的方式可以有多种,比如,可以预先构建任务类型信息与优先级的对应关系表,首先确定第一任务消息的任务类型信息,再从对应关系表中查找该任务类型信息对应的优先级,并确定该优先级为第一任务消息的第一优先级。
在本申请的一些实施例中,可以获取在第一执行阶段待传输的第一任务消息的传输等待时长,并查找第一任务消息对应的等待时长阈值,然后基于传输等待时长和等待时长阈值,计算第一任务消息的第一优先级。
其中,传输等待时长可以包括在任务传输***或云厂商平台已经等待的时长,具体可以计算任务传输***或云厂商平台接收到任务消息的时间点与当前时间点之间的差值,并确定该差值为传输等待时长。
其中,等待时长阈值可以包括预先设置的数值,设置该数据可以基于任务或其所属任务类型对等待时长的敏感度、在云厂商内部的重要程度等等灵活设置。查找等待时长阈值的方式可以有多种,比如可以从预设第一数据表中查找任务消息包括的任务对应的等待时长阈值,或从预设第二数据表中查询任务消息的任务类型信息对应的等待时长阈值,等等。
其中,优先级可以表征一个任务消息在所有待传输的任务消息中的优先程度。基于等待时长阈值和传输等待时长确定优先级的方式可以有多种,比如,根据传输等待时长和等待时长阈值的差值确定优先级,若差值为正则优先级较高,且数值越大优先级越高;若差值为零则优先级次高;若差值为负则优先级较低,且差值绝对值的数值越大优先级越低。
在本申请的一些实施例中,基于传输等待时长和等待时长阈值计算第一优先级的过程可以包括:若传输等待时长小于或等于等待时长阈值,确定第一任务消息对应的第一预设分值,并基于传输等待时长和第一预设分值,计算第一任务消息的第一优先级;若传输等待时长大于等待时长阈值,确定第一任务消息对应的第一预设分值和第二预设分值,并基于第一预设分值、等待时长阈值、第二预设分值和传输等待时长和等待时长阈值之间的差值,计算第一任务消息的第一优先级。
具体可以参见如下公式:
T_score = W_t* W_s + D_t* D_s
其中,T_score为优先级,W_s为第一预设分值,D_s为第二预设分值。
在传输等待时长小于等待时长阈值时,W_t为传输等待时长,D_t为零;在传输等待时长大于等待时长阈值时,W_t为等待时长阈值,D_t为传输等待时长与等待时长阈值之间的差值。
比如,任务消息1的传输等待时长为30s,根据任务消息1包括的任务查找其对应的等待时长阈值40s,确定传输带等待时长30s小于等待时长阈值40s,获取任务消息1对应的第一预设分值2,任务消息1的优先级1=30*2=60。
又比如,任务消息1的传输等待时长为100s,根据任务消息1包括的任务查找其对应的等待时长阈值70s,确定传输带等待时长100s大于等待时长阈值70s,获取任务消息1对应的第一预设分值4和第二预设分值10,任务消息2的优先级2=70*4+(100-70)*10=580。
此实施例中的第一预设分值、第二预设分值均为预先设置的数值,设置此类数值可以基于任务或其所属任务类型对等待时长的敏感度、在云厂商内部的重要程度等等灵活设置。
查找第一预设分值、第二预设分值的方式可以有多种,比如可以从预设第三数据表中查找任务消息包括的任务对应的第一预设分值。
在本申请的一些实施例中,确定第一任务消息对应的第一预设分值的第一预设分值的过程,还具体包括:获取第一预设类型分值表,第一预设类型分值表包括多个预设任务类型信息、以及与每个预设任务类型信息分别对应的预设分值;从第一预设类型分值表中,查找第一任务消息的任务类型信息对应的第一预设分值。
比如,获取预设分值表,预设分值表包括多个预设任务类型、以及每个预设任务类型对应的预设分值,确定任务消息1的任务类型1,并从预设分值表中查找任务类型1对应的预设分值1,并确定该预设分值1为任务消息1对应的第一预设分值。
本申请实施例中,确定第二预设分值的过程与确定第一预设分值的过程基于相似的思想确立,因此在此不再赘述。
具体地,基于第一优先级将第一任务消息***缓冲队列的第一目标位置的过程,可以包括:对第一优先级和缓冲队列中的至少一个已有优先级进行排序,得到第一优先级的排序结果;根据排序结果,确定第一任务消息在缓冲队列中的第一目标位置,并将第一任务消息***第一目标位置。
缓冲队列中可以包括多个已有任务消息,每个已有任务消息对应一个已有优先级,缓冲队列的队头到队尾依次存储已有优先级从高到低的各个已有任务消息。本申请实施例可以将第一优先级与所有已有优先级进行排序,确定第一优先级在所有优先级中的排序结果,再将该第一任务消息***该排序结果对应的第一目标位置处,第一目标位置旁靠近队头的已有任务消息的已有优先级高于第一优先级,第一目标位置旁靠近队尾的已有任务消息的已有优先级低于第一优先级。由此可以将第一任务消息调整至恰当的位置,提升任务消息传输过程的灵活性,便于第一执行阶段或第一***状态期间,高优先级的任务消息可以更快传输至任务执行***,提升***稳定性的同时提升任务消息的传输和处理效率。
比如,缓冲队列包括任务消息3-6,优先级依次为20、40、100、650,确定任务消息1的优先级1为60,可以对这五个优先级进行排序,确定优先级1的排序结果为3,可以将任务消息***任务消息4和任务消息5之间。
又比如,缓冲队列包括任务消息3-6,优先级依次为20、40、100、650,确定任务消息2的优先级2为580,可以对这五个优先级进行排序,确定优先级2的排序结果为2,可以将任务消息***任务消息5和任务消息6之间。
步骤130所叙述的计算第一任务消息的第一优先级,并基于第一优先级将第一任务消息***到缓冲队列的第一目标位置的过程,与前文计算第三任务消息的第二优先级,并基于第二优先级将第三任务消息***缓冲队列的第二目标位置的过程是相似的,具体均可参见此处的叙述。
在本申请的一些实施例中,还可以对任务执行***中线程是否满载进行判断,并根据判断结果对任务消息传输过程或任务执行***进行灵活调整,以提升***稳定性。
具体地,可以获取任务执行***中存在的任务工作线程的任务线程总数;若执行线程总数与任务线程总数匹配,确定任务执行***处于线程满载状态;在任务执行***处于线程满载状态、且执行线程总数与预设第四阈值不匹配的情况下,触发任务执行***新增任务工作线程;在任务执行***处于线程满载状态、执行线程总数与预设第四阈值匹配、且在线程满载状态下待传输的任务消息的数量与执行线程总数不匹配的情况下,停止向缓冲队列***任务消息。
执行线程总数代表任务执行***中执行任务消息的任务工作线程的总数,任务线程总数代表任务执行***中存在的任务工作线程的总数,执行线程总数不大于任务线程总数,若执行线程总数与任务线程总数与执行线程总数匹配,匹配可以如二者相等、或差值小于某数值,认定任务执行***处于线程满载状态,此时可以首先考虑对任务执行***扩容,如增加新的任务工作线程,以满足较高的任务消息处理需求,但是任务执行***可存在的任务工作线程的数量存在上限值,因此,还可以判断执行线程总数是否与预设第四阈值是否相等,若相等则认为任务执行***已达扩容上限,无法增加新的任务工作线程,此时还可以进步判断待传输的任务消息的数量与执行线程总数之间是否匹配,匹配可以如小于、等于等,若不匹配可以确定任务执行***的执行压力较大,为保持***稳定,可以停止向缓冲队列***任务消息。
比如,获取任务线程总数1和执行线程总数1,若执行线程总数1与任务线程总数1相等,确定任务执行***1处于线程满载状态,再判断执行线程总数1与预设第四阈值之间的数值关系,若前者小于后者,可以触发在任务执行***1增加新的任务工作线程;若前者等于后者,可以比较待传输的任务消息的总数是否大于执行线程总数,若大于则暂时停止向缓冲队列***待传输的任务消息。
本申请实施例可以获取任务执行***的任务执行数据,任务执行数据可以包括任务执行***处理任务消息过程的相关指标数据,然后通过任务执行数据确定任务执行***的执行阶段信息,由任务执行***处理任务消息的情况(通过任务执行数据表征),可以确定任务执行***所属的不同执行阶段(通过执行阶段表征),若任务执行***处于第一执行阶段,第一执行阶段比如任务消息的单位处理量较大的阶段,本申请实施例可以对第一执行阶段待传输的任务消息进行优先级调度,具体可以计算任务消息的优先级,并根据优先级将其***缓冲队列的目标位置,使得缓冲队列中高优先级的任务消息可以更快向业务执行***传输,有效提升任务消息的传输灵活性。
下面将结合实施例对本申请的任务消息传输方法进行进一步介绍,任务传输方法可以集成在任务传输***,任务传输***可以集成在计算机设备,计算机设备可以如服务器,具体地,任务传输方案的一个流程图可以如图3,流程可以包括:
210、计算机设备获取任务执行***的任务执行数据。
本申请实施例中,参见图4,云厂商平台可以包括消息生成接口、任务消息流控制接口、缓冲调度器、执行***指标收集器、指标数据反馈控制器、任务执行***等。
其中,消息生成接口可以接收请求消息(如API请求),并基于请求消息生成任务消息,任务消息流控制可以基于任务执行数据判断任务执行***是否处于异常状态、是否处于高峰期、是否线程满载等等,缓冲调度器可以在任务执行***处于高峰期、异常状态等情况时,对任务调度***(即任务传输***)中待传输的任务消息进行优先级调度,通过缓冲队列将这些任务消息按照优先级先后向任务执行***传输。
其中,执行***指标收集器可以接收任务执行***上报的任务执行数据,并将其向指标数据反馈控制器传输,指标数据反馈控制器可以对部分任务执行数据进行处理,得到处理后的任务执行数据,指标数据反馈控制器可以向任务消息流控制接口传输最初接收的或处理后的任务执行数据,从而对任务执行***的执行阶段、***状态等进行判断。任务执行***上报任务执行数据的频率和时间间隔均可以灵活设置,如分钟级等。
任务执行数据可以包括多种,如任务消息吞吐情况相关的任务执行数据,具体如当前执行的任务总数、单个任务的平均执行时间、各种任务类型的平均任务执行时间等;又如任务执行***中消息队列相关的任务执行数据,具体如消息队列的当前任务数、队列拥堵指标等;还如任务执行***中任务工作线程相关的任务执行数据,具体如任务线程总数、单个任务线程的任务处理能力(如单位时间处理任务数)、异常任务线程总数、所有任务线程的整体任务处理能力等等。
220、计算机设备基于任务执行数据,确定任务执行***的***状态信息。
230、在***状态信息表征任务执行***处于第一***状态的情况下,计算机设备根据在第一***状态期间待传输的任务消息的任务类型信息,对该任务消息进行处理。
240、在***状态信息表征任务执行***处于第一***状态的情况下,计算机设备基于任务执行数据,确定任务执行***的执行阶段信息。
比如,结合图5的流程图,任务传输***可以首先判断任务执行***的***状态,具体地可以判断任务执行成功率是否过低(任务执行成功率小于预设第二阈值)、判断拥堵指标数据是否过高(拥堵指标数据大于预设第三阈值)、或判断业务执行***的***扩容是否已达上限(任务线程总数等于预设第四阈值)等,确定任务是否处于异常状态。
若任务执行***处于异常状态,可以将待传输的任务消息中重要程度较低的那一部分(任务消息的任务类型信息与预设任务类型匹配)丢弃,并确定剩余待传输的任务消息的优先级,再根据优先级将其***缓冲队列。
若任务执行***处于正常状态,可以计算任务执行***的任务执行平均数,并判断任务执行平均数是否大于预设第一阈值,从而判断任务执行***是否处于高峰期。
250、若执行阶段信息表征任务执行***处于第一执行阶段,计算机设备确定在第一执行阶段待传输的任务消息的第一优先级,并基于第一优先级将该任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输该任务消息。
260、若执行阶段信息表征任务执行***处于第二执行阶段,计算机设备向任务执行***传输在第二执行阶段待传输的任务消息。
结合图5的流程图,若任务执行***处于高峰期,可以确定待传输的任务消息的优先级,再根据优先级将其***缓冲队列;若任务执行***处于非高峰期,直接将任务消息传入任务执行***。
270、若任务执行数据包括的任务线程总数和执行线程总数匹配,计算机设备确定任务执行***处于线程满载状态。
280、在任务执行***处于第一执行阶段和线程满载状态、且执行线程总数与预设第四阈值不匹配的情况下,计算机设备触发任务执行***新增任务工作线程。
290、在任务执行***处于第一执行阶段和线程满载状态、执行线程总数与预设第四阈值匹配、且在线程满载状态下待传输的任务消息的数量与执行线程总数不匹配的情况下,计算机设备停止向缓冲队列***任务消息。
结合图5的流程图,在确定任务高峰期后,可以判断任务线程总数与执行线程总数是否相等,从而判断任务执行***是否线程满载,在通过判断执行任务线程是否与任务执行的最大线程数量相等,若前者小于后者可以触发任务执行***新增任务工作线程,若前者等于后者可以判断执行线程总数是否小于待传输的任务消息的总数,若小于可以停止向缓冲队列***任务消息,减轻***负担,保障***稳定性。
在进行优先级调度的过程中,计算任务消息的优先级可以通过如下公式实现:
T_score = W_t* W_s + D_t* D_s
其中,T_score为优先级,W_s为等待内分值,D_s为等待外分值,W_t为等待内时长,D_t为等待外时长。
此处“等待内”和“等待外”可以通过最大等待时间确定,任务消息的传输等待时长小于最大等待时长的阶段为“等待内”,任务消息的传输等待时长大于最大等待时长的阶段为“等待外”。等待外时长为传输等待时长与最大等待时长的差值,等待内时长为传输等待时长(不存在“等待外”)或最大等待时长(存在“等待外”)
本申请实施例可以获取任务执行***的任务执行数据,任务执行数据可以包括任务执行***处理任务消息过程的相关指标数据,然后通过任务执行数据确定任务执行***的执行阶段信息,由任务执行***处理任务消息的情况(通过任务执行数据表征),可以确定任务执行***所属的不同执行阶段(通过执行阶段表征),若任务执行***处于第一执行阶段,第一执行阶段比如任务消息的单位处理量较大的阶段,本申请实施例可以对第一执行阶段待传输的任务消息进行优先级调度,具体可以计算任务消息的优先级,并根据优先级将其***缓冲队列的目标位置,使得缓冲队列中高优先级的任务消息可以更快向业务执行***传输,有效提升任务消息的传输灵活性。
更好地实施以上方法,本申请实施例还提供一种任务消息传输装置,如图6所示,该任务消息传输装置可以包括执行数据获取模块310、执行阶段确定模块320和第一阶段模块330,其中,
执行数据获取模块310,用于获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,执行数据包括任务执行***处理任务消息过程的指标数据;
执行阶段确定模块320,用于基于任务执行数据,确定任务执行***的执行阶段信息;
第一阶段模块330,用于若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
在本申请的一些实施例中,任务消息传输装置还包括第二阶段模块,其中,
第二阶段模块,用于若执行阶段信息表征任务执行***处于第二执行阶段,向任务执行***传输在第二执行阶段待传输的任务消息。
在本申请的一些实施例中,任务执行***包括多个用于存储任务消息的消息队列,任务消息传输装置还包括执行结果获取模块、***状态确定模块和第一状态模块,其中,
执行结果获取模块,用于获取任务执行***中各个消息队列的拥堵指标数据,并获取任务执行***执行的第一数量个任务消息各自的执行结果数据;
***状态确定模块,用于基于拥堵指标数据和执行结果数据,确定任务执行***的***状态信息;
第一状态模块,用于若***状态信息表征任务执行***处于第一***状态,根据在第一***状态期间待传输的第三任务消息的任务类型信息,对第三任务消息进行处理。
在本申请的一些实施例中,第一状态模块包括丢弃子模块和传输子模块,其中,
丢弃子模块,用于若在第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型匹配,丢弃第三任务消息;
传输子模块,用于若在第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型不匹配,计算第三任务消息的第二优先级,并基于第二优先级将第三任务消息***缓冲队列的第二目标位置,以通过缓冲队列向任务执行***传输第三任务消息。
在本申请的一些实施例中,任务执行***还包括多个任务工作线程,任务工作线程用于执行任务消息,任务执行数据包括任务工作线程执行的任务消息的任务执行数量、以及任务执行***中执行任务消息的任务工作线程的执行线程总数;执行阶段确定模块包括求和子模块、融合子模块和确定子模块,其中,
求和子模块,用于若***状态信息表征任务执行***处于第二***状态,对所有任务工作线程的任务执行数量求和,得到任务执行总数;
融合子模块,用于对任务执行总数和执行线程总数进行融合,得到任务执行***的任务执行平均数;
确定子模块,用于根据任务执行平均数,确定任务执行***的执行阶段信息。
在本申请的一些实施例中,执行阶段信息包括第一阶段信息和第二阶段信息,确定子模块包括第一确定单元和第二确定单元,其中,
第一确定单元,用于若任务执行平均数与预设第一阈值匹配,确定任务执行***对应第一阶段信息,第一阶段信息表征任务执行***处于第一执行阶段;
第二确定单元,用于若任务执行平均数与预设第一阈值不匹配,确定任务执行***对应第二阶段信息,第二阶段信息表征任务执行***处于第二执行阶段。
在本申请的一些实施例中,***状态确定模块包括目标确定子模块、成功率子模块和***状态子模块,其中,
目标确定子模块,用于若执行结果信息指示任务消息执行成功,确定任务消息为目标任务消息,以得到第二数量个目标任务消息;
成功率子模块,用于基于第一数量和第二数量,计算任务执行***的任务执行成功率;
***状态子模块,用于根据拥堵指标数据、任务执行成功率和任务线程总数,确定任务执行***的***状态信息。
在本申请的一些实施例中,***状态子模块包括第一状态单元和第二状态单元,其中,
第一状态单元,用于若任务执行成功率与预设第二阈值匹配、拥堵指标数据与预设第三阈值匹配、或任务线程总数与预设第四阈值匹配,确定任务执行***对应第一状态信息,第一状态信息表征任务执行***处于第一***状态;
第二状态单元,用于若任务执行成功率与预设第二阈值不匹配、拥堵指标数据与预设第三阈值不匹配、且任务线程总数与预设第四阈值不匹配,确定任务执行***对应第二状态信息,第二状态信息表征任务执行***处于第二***状态。
在本申请的一些实施例中,任务消息传输装置还包括线程总数获取模块、线程满载模块和线程新增模块,其中,
线程总数获取模块,用于获取任务执行***中存在的任务工作线程的任务线程总数;
线程满载模块,用于若执行线程总数与任务线程总数匹配,确定任务执行***处于线程满载状态;
线程新增模块,用于在任务执行***处于线程满载状态、且执行线程总数与预设第四阈值不匹配的情况下,触发任务执行***新增任务工作线程。
在本申请的一些实施例中,任务消息传输装置还包括停止模块,其中,
停止模块,用于在任务执行***处于线程满载状态、执行线程总数与预设第四阈值匹配、且在线程满载状态下待传输的任务消息的数量与执行线程总数不匹配的情况下,停止向缓冲队列***任务消息。
在本申请的一些实施例中,第一阶段模块包括时长子模块和优先级子模块,其中,
时长子模块,用于获取在第一执行阶段待传输的第一任务消息的传输等待时长,并查找第一任务消息对应的等待时长阈值;
优先级子模块,用于基于传输等待时长和等待时长阈值,计算第一任务消息的第一优先级。
在本申请的一些实施例中,优先级子模块包括第一计算单元和第二计算单元,其中,
第一计算单元,用于若传输等待时长小于或等于等待时长阈值,确定第一任务消息对应的第一预设分值,并基于传输等待时长和第一预设分值,计算第一任务消息的第一优先级;
第二计算单元,用于若传输等待时长大于等待时长阈值,确定第一任务消息对应的第一预设分值和第二预设分值,并基于第一预设分值、等待时长阈值、第二预设分值和传输等待时长和等待时长阈值之间的差值,计算第一任务消息的第一优先级。
在本申请的一些实施例中,第一阶段模块包括排序子模块和***子模块,其中,
排序子模块,用于对第一优先级和缓冲队列中的至少一个已有优先级进行排序,得到第一优先级的排序结果;
***子模块,用于根据排序结果,确定第一任务消息在缓冲队列中的第一目标位置,并将第一任务消息***第一目标位置。
在本申请的一些实施例中,第一计算单元可以具体用于:
若传输等待时长小于或等于等待时长阈值,获取第一预设类型分值表,第一预设类型分值表包括多个预设任务类型信息、以及与每个预设任务类型信息分别对应的预设分值;
从第一预设类型分值表中,查找第一任务消息的任务类型信息对应的第一预设分值。
本申请实施例可以获取任务执行***的任务执行数据,任务执行数据可以包括任务执行***处理任务消息过程的相关指标数据,然后通过任务执行数据确定任务执行***的执行阶段信息,由任务执行***处理任务消息的情况(通过任务执行数据表征),可以确定任务执行***所属的不同执行阶段(通过执行阶段表征),若任务执行***处于第一执行阶段,第一执行阶段比如任务消息的单位处理量较大的阶段,本申请实施例可以对第一执行阶段待传输的任务消息进行优先级调度,具体可以计算任务消息的优先级,并根据优先级将其***缓冲队列的目标位置,使得缓冲队列中高优先级的任务消息可以更快向业务执行***传输,有效提升任务消息的传输灵活性。
本申请实施例还提供一种计算机设备,如图7所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,该计算机设备可以是终端或者服务器等,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图7中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的计算机程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和计算机程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储计算机程序以及模块,处理器401通过运行存储在存储器402的就计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,任务执行数据包括任务执行***处理任务消息过程的指标数据;基于任务执行数据,确定任务执行***的执行阶段信息;若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种任务消息传输方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取任务执行***的任务执行数据,任务执行***用于处理多个任务消息,任务执行数据包括任务执行***处理任务消息过程的指标数据;基于任务执行数据,确定任务执行***的执行阶段信息;若执行阶段信息表征任务执行***处于第一执行阶段,计算在第一执行阶段待传输的第一任务消息的第一优先级,并基于第一优先级将第一任务消息***缓冲队列的第一目标位置,以通过缓冲队列向任务执行***传输第一任务消息。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种任务消息传输方法中的步骤,因此,可以实现本申请实施例所提供的任一种任务消息传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述任务消息传输方法的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种任务消息传输方法、装置、计算机设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (17)

1.一种任务消息传输方法,其特征在于,包括:
获取任务执行***的任务执行数据,所述任务执行***用于处理多个任务消息,所述任务执行数据包括所述任务执行***处理所述任务消息过程的指标数据;
基于所述任务执行数据,确定所述任务执行***的执行阶段信息;
若所述执行阶段信息表征所述任务执行***处于第一执行阶段,计算在所述第一执行阶段待传输的第一任务消息的第一优先级,并基于所述第一优先级将所述第一任务消息***缓冲队列的第一目标位置,以通过所述缓冲队列向所述任务执行***传输所述第一任务消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述执行阶段信息表征所述任务执行***处于第二执行阶段,向所述任务执行***传输在所述第二执行阶段待传输的任务消息。
3.根据权利要求1所述的方法,其特征在于,所述任务执行***包括多个用于存储任务消息的消息队列,所述方法还包括:
获取所述任务执行***中各个消息队列的拥堵指标数据,并获取所述任务执行***执行的第一数量个任务消息各自的执行结果数据;
基于所述拥堵指标数据和所述执行结果数据,确定所述任务执行***的***状态信息;
若所述***状态信息表征所述任务执行***处于第一***状态,根据在所述第一***状态期间待传输的第三任务消息的任务类型信息,对所述第三任务消息进行处理。
4.根据权利要求3所述的方法,其特征在于,所述若所述***状态信息表征所述任务执行***处于第一***状态,根据在所述第一***状态期间待传输的第三任务消息的任务类型信息,对所述第三任务消息进行处理,包括:
若在所述第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型匹配,丢弃所述第三任务消息;
若在所述第一***状态期间待传输的第三任务消息的任务类型信息与预设任务类型不匹配,计算所述第三任务消息的第二优先级,并基于所述第二优先级将所述第三任务消息***缓冲队列的第二目标位置,以通过所述缓冲队列向所述任务执行***传输所述第三任务消息。
5.根据权利要求3所述的方法,其特征在于,所述任务执行***还包括多个任务工作线程,所述任务工作线程用于执行所述任务消息,所述任务执行数据包括所述任务工作线程执行的任务消息的任务执行数量、以及所述任务执行***中执行任务消息的任务工作线程的执行线程总数;
所述基于所述任务执行数据,确定所述任务执行***的执行阶段信息,包括:
若所述***状态信息表征所述任务执行***处于第二***状态,对所有所述任务工作线程的任务执行数量求和,得到任务执行总数;
对所述任务执行总数和所述执行线程总数进行融合,得到所述任务执行***的任务执行平均数;
根据所述任务执行平均数,确定所述任务执行***的执行阶段信息。
6.根据权利要求5所述的方法,其特征在于,所述执行阶段信息包括第一阶段信息和第二阶段信息,所述根据所述任务执行平均数,确定所述任务执行***的执行阶段信息,包括:
若所述任务执行平均数与预设第一阈值匹配,确定所述任务执行***对应第一阶段信息,所述第一阶段信息表征所述任务执行***处于第一执行阶段;
若所述任务执行平均数与预设第一阈值不匹配,确定所述任务执行***对应第二阶段信息,所述第二阶段信息表征所述任务执行***处于第二执行阶段。
7.根据权利要求3所述的方法,其特征在于,所述基于所述拥堵指标数据和所述执行结果数据,确定所述任务执行***的***状态信息,包括:
若执行结果信息指示任务消息执行成功,确定所述任务消息为目标任务消息,以得到第二数量个目标任务消息;
基于所述第一数量和所述第二数量,计算所述任务执行***的任务执行成功率;
根据所述拥堵指标数据、所述任务执行成功率和所述任务线程总数,确定所述任务执行***的***状态信息。
8.根据权利要求7所述的方法,其特征在于,所述根据所述拥堵指标数据、所述任务执行成功率和所述任务线程总数,确定所述任务执行***的***状态信息,包括:
若所述任务执行成功率与预设第二阈值匹配、所述拥堵指标数据与预设第三阈值匹配、或所述任务线程总数与预设第四阈值匹配,确定所述任务执行***对应第一状态信息,所述第一状态信息表征所述任务执行***处于第一***状态;
若所述任务执行成功率与预设第二阈值不匹配、所述拥堵指标数据与预设第三阈值不匹配、且所述任务线程总数与所述预设第四阈值不匹配,确定所述任务执行***对应第二状态信息,所述第二状态信息表征所述任务执行***处于第二***状态。
9.根据权利要求8所述的方法,其特征在于,所述若所述执行阶段信息表征所述任务执行***处于第一执行阶段,计算在所述第一执行阶段待传输的第一任务消息的第一优先级,并基于所述第一优先级将所述第一任务消息***缓冲队列的第一目标位置,以通过所述缓冲队列向所述任务执行***传输所述第一任务消息之后,所述方法还包括:
获取所述任务执行***中存在的任务工作线程的任务线程总数;
若所述执行线程总数与所述任务线程总数匹配,确定所述任务执行***处于线程满载状态;
在所述任务执行***处于线程满载状态、且所述执行线程总数与所述预设第四阈值不匹配的情况下,触发所述任务执行***新增任务工作线程。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述任务执行***处于线程满载状态、所述执行线程总数与所述预设第四阈值匹配、且在所述线程满载状态下待传输的任务消息的数量与所述执行线程总数不匹配的情况下,停止向所述缓冲队列***任务消息。
11.根据权利要求10所述的方法,其特征在于,所述计算在所述第一执行阶段待传输的第一任务消息的第一优先级,包括:
获取在所述第一执行阶段待传输的第一任务消息的传输等待时长,并查找所述第一任务消息对应的等待时长阈值;
基于所述传输等待时长和所述等待时长阈值,计算所述第一任务消息的第一优先级。
12.根据权利要求11所述的方法,其特征在于,所述基于所述传输等待时长和所述等待时长阈值,计算所述第一任务消息的第一优先级,包括:
若所述传输等待时长小于或等于所述等待时长阈值,确定所述第一任务消息对应的第一预设分值,并基于所述传输等待时长和所述第一预设分值,计算所述第一任务消息的第一优先级;
若所述传输等待时长大于所述等待时长阈值,确定所述第一任务消息对应的第一预设分值和第二预设分值,并基于所述第一预设分值、所述等待时长阈值、所述第二预设分值和所述传输等待时长和所述等待时长阈值之间的差值,计算所述第一任务消息的第一优先级。
13.根据权利要求12所述的方法,其特征在于,所述基于所述第一优先级将所述第一任务消息***缓冲队列的第一目标位置,包括:
对所述第一优先级和所述缓冲队列中的至少一个已有优先级进行排序,得到所述第一优先级的排序结果;
根据所述排序结果,确定所述第一任务消息在所述缓冲队列中的第一目标位置,并将所述第一任务消息***所述第一目标位置。
14.根据权利要求13所述的方法,其特征在于,所述若所述传输等待时长大于所述等待时长阈值,确定所述第一任务消息对应的第一预设分值,包括:
若所述传输等待时长小于或等于所述等待时长阈值,获取第一预设类型分值表,所述第一预设类型分值表包括多个预设任务类型信息、以及与每个所述预设任务类型信息分别对应的预设分值;
从所述第一预设类型分值表中,查找所述第一任务消息的任务类型信息对应的第一预设分值。
15.一种任务消息传输装置,其特征在于,包括:
执行数据获取模块,用于获取任务执行***的任务执行数据,所述任务执行***用于处理多个任务消息,所述执行数据包括所述任务执行***处理所述任务消息过程的指标数据;
执行阶段确定模块,用于基于所述任务执行数据,确定所述任务执行***的执行阶段信息;
第一阶段模块,用于若所述执行阶段信息表征所述任务执行***处于第一执行阶段,计算在所述第一执行阶段待传输的第一任务消息的第一优先级,并基于所述第一优先级将所述第一任务消息***缓冲队列的第一目标位置,以通过所述缓冲队列向所述任务执行***传输所述第一任务消息。
16.一种计算机设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至14任一项所述的任务消息传输方法中的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至14任一项所述的任务消息传输方法中的步骤。
CN202410101868.4A 2024-01-25 2024-01-25 任务消息传输方法、装置、计算机设备及计算机可读存储介质 Active CN117651075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410101868.4A CN117651075B (zh) 2024-01-25 2024-01-25 任务消息传输方法、装置、计算机设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410101868.4A CN117651075B (zh) 2024-01-25 2024-01-25 任务消息传输方法、装置、计算机设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117651075A true CN117651075A (zh) 2024-03-05
CN117651075B CN117651075B (zh) 2024-04-19

Family

ID=90049732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410101868.4A Active CN117651075B (zh) 2024-01-25 2024-01-25 任务消息传输方法、装置、计算机设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117651075B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928655A (zh) * 2019-11-11 2020-03-27 深圳前海微众银行股份有限公司 一种任务处理方法及装置
CN114153581A (zh) * 2021-11-29 2022-03-08 北京金山云网络技术有限公司 数据处理方法、装置、计算机设备和存储介质
CN114265679A (zh) * 2021-12-24 2022-04-01 深圳前海微众银行股份有限公司 数据处理方法、装置和服务器
CN115951989A (zh) * 2023-03-15 2023-04-11 之江实验室 一种基于严格优先级的协同流量调度数值模拟方法与***
US20230289214A1 (en) * 2022-03-08 2023-09-14 International Business Machines Corporation Intelligent task messaging queue management
US20230393902A1 (en) * 2022-06-02 2023-12-07 Ainnocence Technologies Llc Data processing method, system, electronic equipment, and storage medium based on a cloud platform

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928655A (zh) * 2019-11-11 2020-03-27 深圳前海微众银行股份有限公司 一种任务处理方法及装置
CN114153581A (zh) * 2021-11-29 2022-03-08 北京金山云网络技术有限公司 数据处理方法、装置、计算机设备和存储介质
CN114265679A (zh) * 2021-12-24 2022-04-01 深圳前海微众银行股份有限公司 数据处理方法、装置和服务器
US20230289214A1 (en) * 2022-03-08 2023-09-14 International Business Machines Corporation Intelligent task messaging queue management
US20230393902A1 (en) * 2022-06-02 2023-12-07 Ainnocence Technologies Llc Data processing method, system, electronic equipment, and storage medium based on a cloud platform
CN115951989A (zh) * 2023-03-15 2023-04-11 之江实验室 一种基于严格优先级的协同流量调度数值模拟方法与***

Also Published As

Publication number Publication date
CN117651075B (zh) 2024-04-19

Similar Documents

Publication Publication Date Title
CN109104336B (zh) 服务请求处理方法、装置、计算机设备及存储介质
CN101510167B (zh) 一种插件运行的方法、装置及***
WO2021159638A1 (zh) 集群队列资源的调度方法、装置、设备及存储介质
CN106302632B (zh) 一种基础镜像的下载方法以及管理节点
CN110221901A (zh) 容器资源创建方法、装置、设备及计算机可读存储介质
CN110308980A (zh) 数据的批量处理方法、装置、设备及存储介质
CN109067890A (zh) 一种基于docker容器的CDN节点边缘计算***
CN109766172B (zh) 一种异步任务调度方法以及装置
CN109960575B (zh) 一种计算能力共享方法、***及相关设备
CN113986534A (zh) 任务调度方法、装置、计算机设备和计算机可读存储介质
CN111258726B (zh) 任务调度方法和装置
CN113961341A (zh) 基于Actor模型的并发数据处理方法、***、设备和存储介质
CN113014608A (zh) 一种流量分发控制方法、装置、电子设备及存储介质
CN111953503A (zh) Nfv资源部署编排方法和网络功能虚拟化编排器
CN117651075B (zh) 任务消息传输方法、装置、计算机设备及计算机可读存储介质
CN115563160A (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
CN117632461A (zh) 任务调度方法、装置、存储介质及计算机设备
CN117633102A (zh) 区块链的数据整合方法、装置、计算机设备及存储介质
CN115221041A (zh) 多设备的测试方法、装置、电子设备及存储介质
CN114302351A (zh) 短信业务处理方法、装置、计算机设备和存储介质
CN111090513B (zh) 车联网平台终端链路健康状态的检测方法及存储介质
CN113747506A (zh) 一种资源调度方法、装置和网络***
CN116192870B (zh) 基于镜像级元数据管理和负载感知的p2p下载镜像方法
CN114598705B (zh) 消息负载均衡方法、装置、设备和介质
JP2008310687A (ja) 情報処理システム、情報処理方法、およびプログラム

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