CN116401034A - 任务执行方法、计算机设备及计算机存储介质 - Google Patents

任务执行方法、计算机设备及计算机存储介质 Download PDF

Info

Publication number
CN116401034A
CN116401034A CN202310383798.1A CN202310383798A CN116401034A CN 116401034 A CN116401034 A CN 116401034A CN 202310383798 A CN202310383798 A CN 202310383798A CN 116401034 A CN116401034 A CN 116401034A
Authority
CN
China
Prior art keywords
task
event
execution
task flow
subtask
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
CN202310383798.1A
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.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China 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 Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN202310383798.1A priority Critical patent/CN116401034A/zh
Publication of CN116401034A publication Critical patent/CN116401034A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种任务执行方法、计算机设备及计算机存储介质,用于根据事件触发任务流的自动执行以提升任务执行效率。本申请实施例包括:计算机设备根据任务执行时间触发多个任务执行容器执行对业务数据处理的任务流,并且监听该任务流完成执行的任务流完成事件,根据任务流完成事件获得任务流的执行结果。因此,计算机设备可根据事件的发生自动触发任务流中多个任务的自动执行,无需用户分别针对每个任务流依次下达指令指示任务流开始执行,避免用户未及时触发任务流启动执行而耽误任务流的处理,因而可提升任务流执行的效率,同时也能减少用户的操作。

Description

任务执行方法、计算机设备及计算机存储介质
技术领域
本申请实施例涉及数据处理领域,具体涉及一种任务执行方法、计算机设备及计算机存储介质。
背景技术
任务执行调度平台是用于对任务执行容器进行任务执行调度的平台,其可部署在容器集群管理系统kubernetes,kubernetes部署多个容器节点,如docker容器。每个容器节点可执行任务流中的一个或多个任务。任务执行调度平台可以根据用户的要求创建任务流,并驱动各容器节点执行任务流中的任务。
在创建任务流之后,任务流中各任务需由用户下达指令才能启动执行,并且多个任务流之间彼此独立,在有多个任务流需要执行时,需要用户依次下达指令去触发每个任务流的执行,这增加了用户的操作,用户未及时触发任务流启动执行也会影响任务流的完成。
发明内容
本申请实施例提供了一种任务执行方法、计算机设备及计算机存储介质,用于根据事件触发任务流的自动执行以提升任务执行效率。
本申请实施例第一方面提供了一种任务执行方法,所述方法应用于计算机设备,所述计算机设备部署多个任务执行容器;所述方法包括:
监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
根据所述任务流完成事件获得所述任务流的执行结果。
本申请实施例第二方面提供了一种计算机设备,该计算机设备部署多个任务执行容器;该计算机设备包括:
第一监听单元,用于监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
调度单元,用于根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
第二监听单元,用于监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
获取单元,用于根据所述任务流完成事件获得所述任务流的执行结果。
本申请实施例第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述第一方面的方法。
本申请实施例第四方面提供了一种计算机存储介质,计算机存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第一方面的方法。
本申请实施例第五方面提供了一种计算机程序产品,所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行前述第一方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
计算机设备根据任务执行时间触发多个任务执行容器执行对业务数据处理的任务流,并且监听该任务流完成执行的任务流完成事件,根据任务流完成事件获得任务流的执行结果。因此,计算机设备可根据事件的发生自动触发任务流中多个任务的自动执行,无需用户分别针对每个任务流依次下达指令指示任务流开始执行,避免用户未及时触发任务流启动执行而耽误任务流的处理,因而可提升任务流执行的效率,同时也能减少用户的操作。
附图说明
图1为本申请实施例中网络框架示意图;
图2为本申请实施例中任务执行方法一个流程示意图;
图3为本申请实施例中任务执行方法另一流程示意图;
图4为本申请实施例中计算机设备一个结构示意图;
图5为本申请实施例中计算机设备另一结构示意图。
具体实施方式
本申请实施例提供了一种任务执行方法、计算机设备及计算机存储介质,用于根据事件触发任务流的自动执行以提升任务执行效率。
请参阅图1,本申请实施例中网络框架包括:
业务服务器100以及终端集群;终端集群可以包括:终端设备200a、终端设备200b、终端设备200c、……、终端设备200n等终端设备。
其中,上述业务服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备(包括终端设备200a、终端设备200b、终端设备200c、……、终端设备200n)可以是智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobileinternetdevice,MID)、可穿戴设备(例如智能手表、智能手环等)、智能电脑、智能车载等智能终端。
其中,业务服务器100与终端集群中的各终端设备可以建立通信连接,终端集群中的各终端设备之间也可建立通信连接。换句话说,业务服务器100可与终端设备200a、终端设备200b、终端设备200c、……、终端设备200n中的各终端设备建立通信连接,例如终端设备200a与业务服务器100之间可建立通信连接。终端设备200a与终端设备200b之间可建立通信连接,终端设备200a与终端设备200c之间也可建立通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接等,具体可根据实际应用场景确定,本申请在此不做限制。
应该理解,如图1所示的终端集群中的每个终端设备均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可分别与业务服务器100之间进行数据交互,使得业务服务器100可以接收来自于每个终端设备的业务数据(比如用户通过终端设备上传的财务管理数据)。其中,该应用客户端可以为财务管理应用、企业事务管理应用、浏览器应用、社交应用、即时通信应用、直播应用、游戏应用、短视频应用、视频应用、音乐应用、购物应用、小说应用、支付应用等具有显示文字、图像、音频以及视频等数据信息功能的应用客户端,具体可根据实际应用场景需求确定,在此不做限制。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如财务管理客户端、企业事务管理客户端等)中的嵌入式子客户端,具体可根据实际应用场景确定,在此不做限定。
下面将结合图1的网络框架,对本申请实施例中的任务执行方法进行描述:
请参阅图2,本申请实施例中任务执行方法一个实施例包括:
201、监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
本实施例的方法可应用于计算机设备,该计算机设备可以是图1所示网络框架中的业务服务器100或者各终端设备。计算机设备部署多个任务执行容器,该任务执行容器可以是docker容器,用于执行数据处理任务。其中,任务执行容器可封装多种数据处理算法或者数据处理模型,以便使用上述的数据处理算法或者数据处理模型处理业务数据。
计算机设备可监听任务流执行事件,该任务流执行事件用于表示对业务数据处理的多个任务,这多个任务构成任务流,则计算机设备可根据该任务流执行事件确定待处理的业务数据,以便后续步骤执行对该业务数据的任务流处理。
其中,任务流执行事件可以是任意的能够触发任务流执行的事件,其可以根据预设规则确定。例如,预设规则是上一个任务流完成时便自动执行下一个任务流,则监听到当前任务流完成的事件,相当于监听到当前任务流的下一个任务流启动执行的事件。
202、根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
计算机设备可使用任务执行容器执行任务流的处理,因此,可根据任务流执行事件调度多个任务执行容器以执行对业务数据处理的任务流,则任务执行容器根据其预设的数据处理算法或者数据处理模型处理业务数据,并返回数据处理结果。
203、监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
在完成任务流的执行之后,多个任务执行容器可发布该任务流执行完成的任务流完成事件,从而计算机设备可捕获到此事件并确认任务流执行完成,即确认业务数据完成数据处理。
204、根据所述任务流完成事件获得所述任务流的执行结果;
计算机设备监听到任务流完成事件时,可进一步获取任务流的执行结果,以便将任务流的执行结果返回给用户。
本实施例中,计算机设备根据任务执行时间触发多个任务执行容器执行对业务数据处理的任务流,并且监听该任务流完成执行的任务流完成事件,根据任务流完成事件获得任务流的执行结果。因此,计算机设备可根据事件的发生自动触发任务流中多个任务的自动执行,无需用户分别针对每个任务流依次下达指令指示任务流开始执行,避免用户未及时触发任务流启动执行而耽误任务流的处理,因而可提升任务流执行的效率,同时也能减少用户的操作。
下面将在前述图2所示实施例的基础上,进一步详细地描述本申请实施例。请参阅图3,本申请实施例中任务执行方法另一实施例包括:
301、监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
本实施例中,计算机设备包括事件中心和调度平台,事件中心作为计算机设备的一个单元,用于监听事件以及对事件处理并根据事件作出决策,如启动任务流的执行、中止任务流执行或者结束任务流执行等等。调度平台包括多个任务执行容器,用于接受事件中心的调度执行数据处理任务。
事件中心和调度平台均可运行在k8s集群(kubernetes)中,并可作为k8s集群的容器运行。此外,计算机设备的任务执行容器也可以运行在k8s集群中,使用k8s集群提供的计算资源和内存资源执行数据处理任务。
计算机设备可与用户端连接,该用户端可以是ERP系统或者其他数据处理系统的用户端。用户使用该用户端向ERP系统上传其业务数据,则ERP系统存储用户的业务数据以便用于数据分析。例如,用户可通过用户端向ERP系统上传销售订单,在需要分析未来的销售趋势时向ERP系统发出数据处理请求,则ERP系统通过代理服务器向计算机设备转发该数据处理请求,并向计算机设备提供用户的销售订单,则计算机设备基于多个任务执行容器分析和处理用户的销售订单并获得未来的销售趋势的分析结果。
事件中心包括至少一个事件消息监听器,计算机设备可基于该事件消息监听器监听事件消息。该事件消息包括对业务数据的数据处理任务的事件,例如用户端上传的对业务数据的数据处理请求,或者是上一个任务流完成而触发下一个任务流启动执行的事件,也可以是根据预设规则而触发任务流启动执行的事件,如按照预设时间点启动任务流执行的事件。进而,处理该事件消息获得任务流执行事件。
例如,计算机设备可基于该事件消息监听器监听用户端上传的事件消息,用户端上传的事件消息包括对业务数据的数据处理请求,进而处理用户端上传的事件消息获得任务流执行事件,即任务流执行事件表示了对任务流启动执行的事件,可根据此事件触发任务流执行。
本实施例中,事件中心可与调度平台解耦,使得事件中心和调度平台均可扩展,并均可支持高可用架构。事件中心与调度平台均使用K8s集群管理Pod的方式来实现高可用,保证事件中心核心组件的稳定性和高吞吐量。
本实施例中,事件中心接收到事件消息时,事件消息可使用消息中间件进行存储,该消息中间件可以是消息队列,例如可以是ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等消息队列。在存储至消息中间件后,事件消息的消费者可消费消息中间件中的事件消息。因此,事件中心的多个事件消息监听器中的目标事件消息监听器可从消息中间件监听到目标事件消息,该目标事件消息表示了任务流启动执行的事件,因而处理该目标事件消息可获得任务流执行事件。其中,该目标事件消息监听器为事件中心的多个事件消息监听器中的任意一个,目标事件消息也是消息中间件存储的任意一个事件消息。
某一个事件消息被重复消费,意味着该事件消息会产生多个针对同一个任务流的任务流执行事件,也就是说,计算机设备会根据该事件消息产生的多个任务流执行事件,多次重复地执行同一个任务流,这显然十分耗费计算资源,也会影响任务流处理结果。因此,为避免这一问题发生,在目标事件消息监听器消费了消息中间件中的目标事件消息之后,可对该目标事件消息加锁,所加的锁可以是分布式锁,也可以是线程锁,或者可以是进程锁。通过对目标事件消息加锁,可以让目标事件消息不再被其他事件消息监听器消费,避免目标事件消息被重复消费,进而避免目标事件消息产生多个针对于同一个任务流的任务流执行事件,避免计算机设备重复执行同一个任务流,可节省计算资源,也能确保计算结果准确,不会受到多个任务流执行结果的干扰。
本实施例中,事件消息的发布和监听可基于发布与订阅模型执行。发布-订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者),而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)的存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者(如果有的话)存在。因此,事件消息监听器所监听的事件消息还包括多个任务执行容器完成任务流的事件消息,事件消息监听器订阅事件消息主题,在多个任务执行器发布完成任务流的事件消息时,事件消息监听器基于其订阅的事件消息主题获取完成任务流的事件消息。采用发布与订阅模型进行事件消息的发布和接收,可提升事件消息的传输效率,降低传统的多个异构系统通过API接口接收事件消息的复杂程度。
302、根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
本实施例中,该任务流可以是只有一个,也可以是由多个子任务流组成的。单个任务流时,多个任务执行容器执行完该任务流即获得任务流执行结果。任务流由多个子任务流组成时,多个任务执行容器都执行完这多个子任务流时才获得任务流执行结果。
因此,计算机设备执行任务流的一种实施方式是,根据任务流执行事件确定对业务数据处理的多个子任务流,以及确定多个子任务流中最先执行的第一子任务流,调度多个任务执行容器以执行第一子任务流,监听子任务流完成事件,根据子任务流完成事件确定多个子任务流中的下一个子任务流,下一个子任务流与前一个已完成的子任务流存在关联关系,调度多个任务执行容器以执行下一个子任务流,再次监听到子任务流完成事件时,返回执行根据子任务流完成事件确定多个子任务流中的下一个子任务流的步骤,直至多个子任务流中每个子任务流均完成执行为止,获得每个子任务流的执行结果。
其中,子任务流之间存在关联关系,可以是前一个子任务流的执行结果需要用在下一个子任务流的执行过程;或者是,前一个子任务流与下一个子任务流需要依次执行,并且两者的执行结果都需要用于后续的子任务流的执行过程。当然,也可以是根据实际数据计算场景和数据处理需要确定子任务流之间的关联关系。
303、监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
304、根据所述任务流完成事件获得所述任务流的执行结果;
当任务流由多个子任务流组成时,这多个子任务流均完成执行时,多个任务执行容器可发布任务流执行完成的任务流完成事件,则计算机设备可获取任务流的执行结果。任务流的执行结果可存储至Redis集群中,Redis集群包括多个Redis节点,用户端可通过API接口从Redis节点获得任务流的执行结果。
305、若在预设时间段内所述多个任务执行容器执行所述任务流失败的次数超过预设次数,则发出异常告警信息,以提示所述任务流执行异常;
本实施例中,如果预设时间段内多个任务执行容器执行不同任务流失败的次数超过预设次数,这可能是这多个任务执行容器的处理资源(如CPU、内存资源等等)不足,或者可能是任务执行容器的数据处理算法或者数据处理模型无法支持业务数据的处理,此时计算机设备可监测到此类事件,并发出异常告警信息,以提示用户关注数据处理的异常,便于用户及时采取处理措施,如增加任务执行容器的数量,或者部署能够处理业务数据的算法或者模型。
此外,计算机设备还可监控任务执行容器对业务数据的处理过程。在多个任务执行容器的处理资源不足以执行任务流时,表明其CPU资源或者内存资源不足,此时可增加一个或多个任务执行容器,以使得多个任务执行容器的处理资源足以执行该任务流。或者是,在执行任务流时多个任务执行容器中存在空闲的任务执行容器,则撤除该空闲的任务执行容器,或者,将任务流中的一个或多个任务路由至该空闲的任务执行容器,以避免浪费计算资源,从而可提升计算资源的利用效率。
本实施例中,使用消息中间件对事件消息进行管理,解耦了异构系统之间的集成问题,使得事件中心或者调度平台可扩展;同时对事件中心的流量进行了限流处理,提升系统的负载性能。使用K8s集群对Pod的管理机制及对Pod的原生架构支持,保证了系统服务的高伸缩、高可用性。此外,由于使用异步消息发布/订阅事件的驱动模型架构,因而也提高了分布式任务调度系统的吞吐量,并强化其弹性伸缩能力。
上面对本申请实施例中的任务执行方法进行了描述,下面对本申请实施例中的计算机设备进行描述,所述计算机设备部署多个任务执行容器;请参阅图4,本申请实施例中计算机设备一个实施例包括:
第一监听单元401,用于监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
调度单元402,用于根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
第二监听单元403,用于监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
获取单元404,用于根据所述任务流完成事件获得所述任务流的执行结果。
本实施例一种优选的实施方式中,所述计算机设备包括事件中心,所述事件中心包括至少一个事件消息监听器;
第一监听单元401具体用于基于所述事件消息监听器监听事件消息,处理所述事件消息获得所述任务流执行事件;所述事件消息包括对所述业务数据的数据处理任务的事件。
本实施例一种优选的实施方式中,计算机设备还包括:
事件消息处理单元405,用于接收所述事件消息,将所述事件消息存储至消息中间件中;
第一监听单元401具体用于基于多个所述事件消息监听器中的目标事件消息监听器,监听所述消息中间件中的目标事件消息,处理所述目标事件消息获得所述任务流执行事件;
其中,所述目标事件消息监听器为多个所述事件消息监听器中的任意一个。
本实施例一种优选的实施方式中,事件消息处理单元405还用于对所述消息中间件中所述目标事件消息进行加锁,所述锁包括分布式锁、线程锁、进程锁。
本实施例一种优选的实施方式中,所述事件消息监听器所监听的事件消息包括所述多个任务执行容器完成所述任务流的事件消息;
所述事件消息监听器订阅事件消息主题,在所述多个任务执行器发布完成所述任务流的事件消息时,所述事件消息监听器基于其订阅的事件消息主题获取完成所述任务流的事件消息。
本实施例一种优选的实施方式中,调度单元402具体用于:
根据所述任务流执行事件确定对所述业务数据处理的多个子任务流,以及确定所述多个子任务流中最先执行的第一子任务流;
调度所述多个任务执行容器以执行所述第一子任务流;
监听子任务流完成事件,根据所述子任务流完成事件确定所述多个子任务流中的下一个子任务流,所述下一个子任务流与前一个已完成的子任务流存在关联关系;
调度所述多个任务执行容器以执行所述下一个子任务流;
再次监听到子任务流完成事件时,返回执行所述根据所述子任务流完成事件确定所述多个子任务流中的下一个子任务流的步骤,直至所述多个子任务流中每个子任务流均完成执行为止。
本实施例一种优选的实施方式中,所述计算机设备还包括:
异常告警单元406,用于若在预设时间段内所述多个任务执行容器执行所述任务流失败的次数超过预设次数,则发出异常告警信息,以提示所述任务流执行异常。
本实施例一种优选的实施方式中,所述计算机设备还包括:
资源控制单元407,用于在所述多个任务执行容器的处理资源不足以执行所述任务流时,增加一个或多个所述任务执行容器,以使得所述多个任务执行容器的处理资源足以执行所述任务流;或者,在执行所述任务流时所述多个任务执行容器中存在空闲的任务执行容器,则撤除所述空闲的任务执行容器,或者,将所述任务流中的一个或多个任务路由至所述空闲的任务执行容器。
本实施例中,计算机设备中各单元所执行的操作与前述图2至图3所示实施例中描述的类似,此处不再赘述。
本实施例中,计算机设备根据任务执行时间触发多个任务执行容器执行对业务数据处理的任务流,并且监听该任务流完成执行的任务流完成事件,根据任务流完成事件获得任务流的执行结果。因此,计算机设备可根据事件的发生自动触发任务流中多个任务的自动执行,无需用户分别针对每个任务流依次下达指令指示任务流开始执行,避免用户未及时触发任务流启动执行而耽误任务流的处理,因而可提升任务流执行的效率,同时也能减少用户的操作。
下面对本申请实施例中的计算机设备进行描述,请参阅图5,本申请实施例中计算机设备一个实施例包括:
该计算机设备500可以包括一个或一个以上中央处理器(centralprocessingunits,CPU)501和存储器505,该存储器505中存储有一个或一个以上的应用程序或数据。
其中,存储器505可以是易失性存储或持久存储。存储在存储器505的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器501可以设置为与存储器505通信,在计算机设备500上执行存储器505中的一系列指令操作。
计算机设备500还可以包括一个或一个以上电源502,一个或一个以上有线或无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等。
该中央处理器501可以执行前述图2至图3所示实施例中计算机设备所执行的操作,具体此处不再赘述。
本申请实施例还提供了一种计算机存储介质,其中一个实施例包括:该计算机存储介质中存储有指令,该指令在计算机上执行时,使得该计算机执行前述图2至图3所示实施例中计算机设备所执行的操作。
本申请实施例还提供了一种计算机程序产品,其中一个实施例包括:该计算机程序产品在计算机设备上运行时,使得该计算机设备执行前述图2至图3所示实施例中计算机设备所执行的操作。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种任务执行方法,其特征在于,所述方法应用于计算机设备,所述计算机设备部署多个任务执行容器;所述方法包括:
监听任务流执行事件,根据所述任务流执行事件确定待处理的业务数据;
根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流;
监听所述多个任务执行容器发布的所述任务流执行完成的任务流完成事件;
根据所述任务流完成事件获得所述任务流的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述计算机设备包括事件中心,所述事件中心包括至少一个事件消息监听器;
所述监听任务流执行事件,包括:
基于所述事件消息监听器监听事件消息,处理所述事件消息获得所述任务流执行事件;所述事件消息包括对所述业务数据的数据处理任务的事件。
3.根据权利要求2所述的方法,其特征在于,所述基于所述事件消息监听器监听事件消息之前,所述方法还包括:
接收所述事件消息,将所述事件消息存储至消息中间件中;
所述基于所述事件消息监听器监听事件消息,处理所述事件消息获得所述任务流执行事件,包括:
基于多个所述事件消息监听器中的目标事件消息监听器,监听所述消息中间件中的目标事件消息,处理所述目标事件消息获得所述任务流执行事件;
其中,所述目标事件消息监听器为多个所述事件消息监听器中的任意一个。
4.根据权利要求3所述的方法,其特征在于,所述基于多个所述事件消息监听器中的目标事件消息监听器,监听所述消息中间件中的目标事件消息之后,所述方法还包括:
对所述消息中间件中所述目标事件消息进行加锁,所述锁包括分布式锁、线程锁、进程锁。
5.根据权利要求2所述的方法,其特征在于,所述事件消息监听器所监听的事件消息包括所述多个任务执行容器完成所述任务流的事件消息;
所述事件消息监听器订阅事件消息主题,在所述多个任务执行器发布完成所述任务流的事件消息时,所述事件消息监听器基于其订阅的事件消息主题获取完成所述任务流的事件消息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述任务流执行事件调度所述多个任务执行容器以执行对所述业务数据处理的任务流,包括:
根据所述任务流执行事件确定对所述业务数据处理的多个子任务流,以及确定所述多个子任务流中最先执行的第一子任务流;
调度所述多个任务执行容器以执行所述第一子任务流;
监听子任务流完成事件,根据所述子任务流完成事件确定所述多个子任务流中的下一个子任务流,所述下一个子任务流与前一个已完成的子任务流存在关联关系;
调度所述多个任务执行容器以执行所述下一个子任务流;
再次监听到子任务流完成事件时,返回执行所述根据所述子任务流完成事件确定所述多个子任务流中的下一个子任务流的步骤,直至所述多个子任务流中每个子任务流均完成执行为止。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在预设时间段内所述多个任务执行容器执行所述任务流失败的次数超过预设次数,则发出异常告警信息,以提示所述任务流执行异常。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述多个任务执行容器的处理资源不足以执行所述任务流时,增加一个或多个所述任务执行容器,以使得所述多个任务执行容器的处理资源足以执行所述任务流;
或者,
在执行所述任务流时所述多个任务执行容器中存在空闲的任务执行容器,则撤除所述空闲的任务执行容器,或者,将所述任务流中的一个或多个任务路由至所述空闲的任务执行容器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至8中任一项所述的方法。
CN202310383798.1A 2023-04-06 2023-04-06 任务执行方法、计算机设备及计算机存储介质 Pending CN116401034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310383798.1A CN116401034A (zh) 2023-04-06 2023-04-06 任务执行方法、计算机设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310383798.1A CN116401034A (zh) 2023-04-06 2023-04-06 任务执行方法、计算机设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN116401034A true CN116401034A (zh) 2023-07-07

Family

ID=87017676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310383798.1A Pending CN116401034A (zh) 2023-04-06 2023-04-06 任务执行方法、计算机设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN116401034A (zh)

Similar Documents

Publication Publication Date Title
CN108449410B (zh) 一种云平台中消息管理方法、系统及相关装置
US8914493B2 (en) Presence-based event driven architecture
US20210311781A1 (en) Method and system for scalable job processing
CN108958922B (zh) 用于执行任务的方法和装置
US20070027915A1 (en) Method and system for processing a workflow using a publish-subscribe protocol
CN111711697A (zh) 消息推送方法、装置、设备及存储介质
CN112579148A (zh) 基于业务代理的业务消息处理方法、装置及电子设备
CN111221793A (zh) 数据挖掘方法、平台、计算机设备及存储介质
CN111210340B (zh) 一种自动任务处理方法、装置、服务器及存储介质
CN112311597A (zh) 消息推送方法和装置
CN113342503B (zh) 实时进度反馈方法、装置、设备及存储介质
US11194637B2 (en) Extensible alerts platform
CN112084042A (zh) 一种消息处理的方法和装置
CN113971098A (zh) 一种RabbitMQ消费管理方法及系统
CN115550354A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN111475315B (zh) 服务器及订阅通知推送控制、执行方法
CN110119269B (zh) 控制任务对象的方法、装置、服务器及存储介质
CN113127225A (zh) 一种数据处理任务的调度方法、装置和系统
CN116401034A (zh) 任务执行方法、计算机设备及计算机存储介质
CN113965563B (zh) 基于模型的业务处理方法及装置、服务器
CN112799797B (zh) 一种任务管理的方法和装置
CN112445597A (zh) 定时任务调度方法和装置
CN112597224A (zh) 数据导出方法、数据导出装置、电子设备及介质
CN111625375A (zh) 帐号预约方法和装置、存储介质及电子设备
CN114007111B (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