CN110851261A - 任务处理方法、系统、装置、设备及计算机可读存储介质 - Google Patents
任务处理方法、系统、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110851261A CN110851261A CN201911110236.XA CN201911110236A CN110851261A CN 110851261 A CN110851261 A CN 110851261A CN 201911110236 A CN201911110236 A CN 201911110236A CN 110851261 A CN110851261 A CN 110851261A
- Authority
- CN
- China
- Prior art keywords
- task
- platform
- operation task
- micro service
- external
- 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
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
-
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Abstract
本发明涉及金融科技(Fintech)技术领域,本发明公开了一种基于平台交互的任务处理方法,包括:在接收到操作任务时,获取所述操作任务对应的任务信息;根据所述任务信息判断是否要转移所述操作任务;若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。本发明还公开了一种基于平台交互的任务处理系统、装置、设备和一种计算机可读存储介质。本发明通过预设代理节点实现平台交互,降低了交互平台间的耦合性,并操作任务进行有效管理。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及基于平台交互的任务处理方法、系统、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,金融平台交互技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
微服务平台具备高并发、高性能、高可用的大数据作业、请求等操作任务全生命周期管理能力,微服务平台是开源系统平台,可以通过建立微服务平台与外部平台之间连接实现平台交互,以利用微服务平台的能力管理操作任务。当前微服务平台与外部平台之间交互是通过RPC(Remote Procedure Call,远程过程调用)方式,RPC方式需要在微服务平台与外部平台进行相应的开发,开发成本较高,开发的耦合度较高,使得外部平台接入的意愿降低。如何降低微服务平台与外部平台耦合度,提高外部平台接入的意愿,以有效地利用微服务平台的能力实现操作任务管理成为了当前亟待解决的技术问题。
发明内容
本发明的主要目的在于提出一种基于平台交互的任务处理方法、系统、装置、设备及计算机可读存储介质,旨在解决当前微服务平台与外部平台耦合度高,使得外部平台接入的意愿降低,导致不能有效利用微服务平台实现操作任务管理的技术问题。
为实现上述目的,本发明提供一种基于平台交互的任务处理方法,所述基于平台交互的任务处理方法包括如下步骤:
在接收到操作任务时,获取所述操作任务对应的任务信息;
根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
在一实施例中,所述在接收到操作任务时,获取所述操作任务对应的任务信息的步骤之前,包括:
在接收到外部平台接入请求时,获取外部平台接入请求对应的接入信息,其中,所述接入信息中包含实现微服务平台与外部平台之间交互的代码;
将所述接入信息中的代码编译形成jar包,将所述jar包添加至所述微服务平台的插件目录下;
在接收到微服务启动请求时,查询所述插件目录加载所述jar包,形成预设代理节点。
在一实施例中,所述根据所述任务信息判断是否要转移所述操作任务的步骤,包括:
提取所述任务信息中的第一任务标识,确定所述第一任务标识对应的任务类型;
若所述第一任务标识对应的任务类型为微服务任务类型,则判定不要转移所述操作任务;
若所述第一任务标识对应的任务类型为代理任务类型,则判定要转移所述操作任务。
在一实施例中,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤,包括:
接收所述外部平台为所述操作任务设置的第二任务标识,将所述第二任务标识封装,生成包含所述第二任务标识的获取请求;
通过所述预设代理节点将所述获取请求发送至外部平台,以使所述外部平台根据所述获取请求中的第二任务标识定位所述操作任务,并获取所述操作任务对应的日志或者状态信息;
接收所述外部平台反馈至所述预设代理节点的所述获取请求对应的日志或状态信息,根据所述日志或所述状态信息调整所述操作任务的状态,直至所述操作任务执行完成。
在一实施例中,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤,包括:
接收所述外部平台反馈的所述操作任务的第二任务标识,生成所述第二任务标识对应的异步响应实例,其中,所述异步响应实例中设置监听器,所述监听器中设置回调方法;
在所述异步响应实例监听到所述第二任务标识对应操作任务的触发事件时,执行所述回调方法并按照所述触发事件调整所述操作任务的状态,直至所述操作任务执行完成。
在一实施例中,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤之后,包括:
在检测到所述操作任务执行完成时,将所述操作任务的执行结果信息反馈至用户端,并释放所述操作任务的资源。
在一实施例中,所述基于平台交互的任务处理方法,还包括:
在接收到外部平台下线请求时,获取外部平台下线请求对应的平台标识;
查询微服务平台的插件目录,获取所述平台标识对应的jar包,删除所述jar包,并下线所述平台标识对应的外部平台。
此外,为实现上述目的,本发明还提供一种基于平台交互的任务处理系统,所述基于平台交互的任务处理系统包括:通信连接的微服务平台和外部平台,所述微服务平台和所述外部平台交互实现以下步骤:
微服务平台在接收到操作任务时,微服务平台获取所述操作任务对应的任务信息;
微服务平台根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,微服务平台则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
外部平台执行所述操作任务,产生所述操作任务对应的日志或状态信息,外部平台调用所述微服务平台的网络接口反馈所述日志或所述状态信息;
微服务平台在检测到所述网络接口被调用时,微服务平台获取所述网络接口反馈的所述日志或所述状态信息;
微服务平台根据所述日志或所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
此外,为实现上述目的,本发明还提供一种基于平台交互的任务处理装置,所述基于平台交互的任务处理装置包括:
请求接收模块,用于在接收到操作任务时,获取所述操作任务对应的任务信息;
转移判断模块,用于根据所述任务信息判断是否要转移所述操作任务;
任务转发模块,用于若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收翻转模块,用于接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
此外,为实现上述目的,本发明还提供一种基于平台交互的任务处理设备,所述基于平台交互的任务处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于平台交互的任务处理程序,所述基于平台交互的任务处理程序被所述处理器执行时实现如上所述的基于平台交互的任务处理方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于平台交互的任务处理程序,所述基于平台交互的任务处理程序被处理器执行时实现如上所述的基于平台交互的任务处理方法的步骤。
本发明提供了一种基于平台交互的任务处理方法、系统、装置、设备及计算机可读存储介质,本发明实施例应用在微服务平台,微服务平台中预设代理节点,微服务平台在接收到操作任务时,微服务平台获取所述操作任务对应的任务信息;根据任务信息判断是否要转移所述操作任务;若要转移所述操作任务,微服务平台则通过预设代理节点将操作任务提交至外部平台,以使外部平台处理操作任务;微服务平台中预设代理节点接收所述外部平台反馈的操作任务的状态信息,根据状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。本发明实施例中通过预设代理节点实现微服务平台与外部平台之间的交互,开发人员不需要在微服务平台与外部平台进行相应的开发,降低了开发成本和开发的耦合度,提高外部平台接入的意愿,以有效地利用微服务平台的能力实现操作任务管理。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明基于平台交互的任务处理方法第一实施例的流程示意图;
图3为本发明基于平台交互的任务处理方法第一实施例中的具体场景示意图;
图4为本发明基于平台交互的任务处理方法第二实施例的流程示意图;
图5为本发明基于平台交互的任务处理方法第三实施例的流程示意图;
图6为本发明基于平台交互的任务处理系统一实施例的具体场景示意图;
图7为本发明基于平台交互的任务处理装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例基于平台交互的任务处理设备可以是终端或服务器,如图1所示,该基于平台交互的任务处理设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于平台交互的任务处理程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于平台交互的任务处理程序,并执行下述基于平台交互的任务处理方法中的操作。
现有技术中微服务平台与外部平台交互是使用RPC(Remote Procedure Call,远程过程调用)方式,RPC是一种进程间通信方式,RPC允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即,程序员无论是调用本地的还是远程的,本质上编写的调用代码基本相同。这样的平台交互方式在分布式系统中的应用是极其广泛的,但是仍然有一些不足,例如,微服务平台一个是开源项目Linkis系统平台时,产生的问题有以下类型:
1)、当前平台交互RPC方式调用双方都需要在自己的平台进行相应的开发,开发的耦合度较高。如果要为要进行一套RPC的开发,Linkis系统平台与外部平台两边的开发成本较高,外部平台接入的意愿会降低。
2)、RPC方式接入方案是嵌入式的,不具有插件开发插拔式的特点。由于使用现有市面上的RPC框架会使linkis系统平台和外部平台引入更多的依赖,不可以保持linkis系统平台和外部平台的代码清洁度。
3)、RPC方式的部署比较复杂,RPC方式需要部署若干基础服务,比如服务注册与发现中心等,不利于敏捷开发。
基于上述硬件结构和平台交互问题,提出本发明基于平台交互的任务处理方法实施例。
本发明基于平台交互的任务处理方法第一实施例包括:
在接收到操作任务时,获取所述操作任务对应的任务信息;
根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
本实施例中的任务处理方法应用于金融行业的金融机构(银行机构、保险机构、证券机构等)中的任务处理设备,该任务处理设备是任务处理平台的硬件载体,本实施例中的任务处理平台可以设置在微服务平台上,此外,本实施例中的任务处理平台还可以作为一个中间平台对接微服务平台和外部平台。
本实施例中的涉及的微服务平台是指金融行业开发的大数据中间件平台,微服务平台打通了多个计算存储引擎,如:Spark、TiSpark、Hive、Python和HBase等,用于对外提供统一REST/WebSocket/JDBC接口,提交执行SQL、Pyspark、HiveQL、Scala等脚本的数据中间件。例如,微服务平台为Linkis系统平台(Linkis系统平台是基于微服务架构,提供了金融级多租户隔离、资源管控、权限隔离等企业级特性,支持统一变量、UDF、函数、用户资源文件管理,具备高并发、高性能、高可用的大数据作业/请求全生命周期管理能力)。
本实施例中的涉及的外部平台是具有微服务平台功能之外其他功能的平台,例如,微服务平台为Linkis系统平台,Linkis系统平台支持很多内部执行引擎,如spark、hive、python、Hbase等,但是Linkis系统平台不具有邮件发送功能,质量检测功能,则外部平台可以是邮件系统平台,数据质量检测平台等等。
为了方便理解,本实施例中以任务处理平台设置在微服务平台上为例进行说明,在本实施例中,预先在微服务平台中设置外部平台的代理节点,通过代理节点实现微服务平台与外部平台之间的交互,具体地,包括:
在接收到外部平台接入请求时,获取外部平台接入请求对应的接入信息,其中,所述接入信息中包含实现微服务平台与外部平台之间交互的代码;
将所述接入信息中的代码编译形成jar包,将所述jar包添加至所述微服务平台的插件目录下;
在接收到微服务启动请求时,查询所述插件目录加载所述jar包,形成预设代理节点。
即,本实施例中微服务平台接收外部平台接入请求,微服务平台获取外部平台接入请求对应的接入信息,接入信息中包含实现微服务平台与外部平台之间交互的代码;微服务平台将接入信息中的代码编译形成jar包,即,微服务平台将接入信息中的代码进行编译形成计算机可以识别的二进制语言,微服务平台将编译后信息进行封装形成jar包,微服务平台将jar包按照指定的命名规则添加至微服务平台的插件目录下;微服务平台启动微服务进行初始化,生成外部平台对应的代理节点,以通过代理节点进行平台交互,即,微服务平台在接收到微服务启动请求时,查询插件目录加载jar包,形成外部平台对应的预设代理节点,以通过预设代理节点提供服务。
本实施例中外部平台的接入微服务平台采用插件的方式,外部平台只需要实现必要的接口,并将实现的jar包放置到微服务平台指定的插件目录,就可以与微服务平台实现交互;本实施例中外部平台接入成本低,外部平台与微服务平台是低耦合的状态,外部平台开发者想要接入微服务平台,几乎不需要对外部平台的原生代码进行修改,与微服务平台完全解耦。
例如,微服务平台为Linkis系统平台,外部平台希望与Linkis系统平台进行交互,首先将实现交互的代码编译打包成jar包之后,按照命名规范放置到Linkis系统平台中AppJointEntrance(应用关节接口)的插件目录下面,Linkis系统平台中AppJointEntrance微服务启动之后,会去插件目录下面加载jar包形成AppJoint以提供服务。
可以理解的是,AppJoint是一个顶层抽象接口,AppJoint提供了Linkis系统平台和外部平台进行交互所需要的接口方法,AppJoint具有提交执行、查询任务状态、查询任务日志以及杀死任务等功能。一个外部平台(如数据质量检测平台)希望和微服务平台进行交互执行,交互实现的方式由外部平台的自己决定。
本实施例中AppJoint的接入方式与RPC方式相比,具有以下优点:1.不有需要同时对微服务平台和外部平台进行特定的开发,2、部署方式简单;本实施例在AppJoint的接入方式与直接采用HTTP的方式相比,具有以下优点:接口统一;2、不要将接口与具体业务实现强绑定,方便横向扩展。
AppJoint的理念不仅适用于Linkis系统,对于另外的希望接入多个外部平台,并获取这些外部平台执行能力的其他微服务平台而言,AppJoint也是一种很好的方式,AppJoint能够像一个关节一样,将不同平台进行连接,并协调不同平台进行工作,就像人的肘部关节一样连接人的上臂和下臂并协调两者进行运动。Appjoint的引入可以让一个微服务系统能够接入各式各样的外部平台,并能够以一种统一的方式与这些外部平台进行交互执行。实现了不同平台之间的解耦合。
进一步,在建立预设代理节点之后,微服务平台可以将用户提交的操作任务提交给外部平台执行,并获取操作任务在外部平台运行产生的信息,实现操作任务的管理,具体地:
参照图2,图2为本发明基于平台交互的任务处理方法第一实施例的流程示意图,所述方法包括:
步骤S10,在接收到操作任务时,获取所述操作任务对应的任务信息;
微服务平台接收操作任务,操作任务的触发方式不作具体限定,即,操作任务可以是主动触发的,例如,客户在终端上点击“业务办理”主动触发操作任务;此外,操作任务还可以是自动触发的,例如,微服务平台中预设每日凌晨执行数据更新的操作任务,微服务平台在到达凌晨时,自动触发数据更新的操作任务。
微服务平台在接收到操作任务时,微服务平台获取操作任务对应的任务信息,其中,任务信息包括任务标识和任务执行信息等。
步骤S20,根据所述任务信息判断是否要转移所述操作任务。
本实施例中操作任务的任务类型是多种多样的,比如任务类型包括微服务平台支持的spark hive等微服务任务类型,同时也包括微服务平台不支持的代理任务类型,比如数据质量检测的操作任务、邮件发送的操作任务等。微服务平台需要根据操作任务的任务信息确定是否要转移操作任务。
例如,结合图3,微服务平台为Linkis系统平台,Linkis系统平台设置有LinkisGateway,LinkisGateway中识别任务标识,确定是否将操作任务进行转发,例如,LinkisGateway中预先设定指定参数,若操作任务的任务标识中包含指定参数,则微服务平台将操作任务保留在自身进行执行;若操作任务的任务标识中不包含指定参数,那么操作任务就会被LinkisGateway转发到对应的预设代理节点。
本实施例中给出了一种根据任务信息判断是否要转移操作任务的具体实现方式,包括:
步骤a1,提取所述任务信息中的第一任务标识,确定所述第一任务标识对应的任务类型;
步骤a2,若所述第一任务标识对应的任务类型为微服务任务类型,则判定不要转移所述操作任务;
步骤a3,若所述第一任务标识对应的任务类型为代理任务类型,则判定要转移所述操作任务。
即,微服务平台提取任务信息中的第一任务标识,微服务平台确定第一任务标识对应的任务类型;即,微服务平台中预设任务标识与任务类型映射表,微服务平台查询映射表,获取第一任务标识对应的任务类型,若第一任务标识对应的任务类型为微服务任务类型,微服务平台将操作任务保留在自身进行执行;若第一任务标识对应的任务类型为代理任务类型,微服务平台则将操作任务提交至预设代理节点。
步骤S30,若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务。
若将操作任务提交至预设代理节点,微服务平台则通过预设代理节点将操作任务提交至外部平台,以使外部平台处理操作任务;本实施例中通过预设代理节点,将微服务平台和外部平台进行连接,并协调微服务平台和外部平台进行工作。
步骤S40,接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
微服务平台接收外部平台反馈的操作任务的状态信息,状态信息包括:初始化状态、等待调度状态、运行状态、失败状态或成功状态;微服务平台根据状态信息对操作任务进行状态翻转,直至操作任务执行完成,以实现操作任务的管理。
本实施例中通过预设代理节点实现微服务平台与外部平台之间的交互,开发人员不需要在微服务平台与外部平台进行相应的开发,降低了开发成本和开发的耦合度,提高外部平台接入的意愿,以有效地利用微服务平台的能力实现操作任务管理。
在本实施例步骤S40之后包括:微服务平台在检测到操作任务执行完成时,微服务平台将操作任务的执行结果信息反馈至发送操作任务的用户端,并释放操作任务的资源。
进一步地,基于本发明基于平台交互的任务处理方法第一实施例,提出本发明基于平台交互的任务处理方法第二实施例。
参照图4,本实施例是第一实施例中步骤S30的细化,本实施例中具体说明了通过同步方式进行操作任务状态更新,实现操作任务管理的方式,包括:
步骤S31,接收所述外部平台为所述操作任务设置的第二任务标识,将所述第二任务标识封装,生成包含所述第二任务标识的获取请求。
微服务平台中的预设代理节点接收外部平台为操作任务设置的第二任务标识,微服务平台将第二任务标识封装,生成包含第二任务标识的获取请求。
步骤S32,通过所述预设代理节点将所述获取请求发送至外部平台,以使所述外部平台根据所述获取请求中的第二任务标识定位所述操作任务,并获取所述操作任务对应的日志或者状态信息。
微服务平台通过预设代理节点将携带第二任务标识的获取请求发送至外部平台,以使外部平台根据获取请求中的第二任务标识定位操作任务,外部平台确定第二任务标识对应的操作任务,外部平台获取该操作任务对应的日志或者状态信息,并将日志或者状态信息发送至微服务平台的预设代理节点。
步骤S33,接收所述外部平台反馈至所述预设代理节点的所述获取请求对应的日志或状态信息,根据所述日志或所述状态信息调整所述操作任务的状态,直至所述操作任务执行完成。
微服务平台接收外部平台反馈至预设代理节点的获取请求对应的日志或状态信息,微服务平台根据日志或状态信息调整操作任务的状态,直至操作任务执行完成。
即,微服务平台中预设代理节点以HTTP请求的方式发送操作任务发送至外部平台,外部平台获取HTTP请求的方式的操作任务,外部平台为操作任务设置第二任务标记,并将第二任务标记反馈至微服务平台中的预设代理节点,微服务平台将该第二任务标记封装成一个请求体(例如,Action),在以后每次该任务线程在运行的时候,预设代理节点会将上述的action携带到获取请求中,去请求外部平台。外部平台收到获取请求之后,会根据action中的内容定位到该操作任务,并获取操作任务的日志或状态信息,如果获取到操作任务的日志,外部平台就会将日志返回给appjoint,如果获取操作任务的状态信息,外部平台则将状态信息返回给appjoint,微服务平台根据日志或状态信息调整操作任务的状态,直至操作任务执行完成。
本实施例中预设代理节点以HTTP请求的方式发送操作任务,及操作任务对应任务信息,以直接采用HTTP的方式调用相比,不需要接口的设计与具体业务实现强绑定,方便外部平台横向扩展。
进一步地,基于本发明基于平台交互的任务处理方法上述实施例,提出本发明基于平台交互的任务处理方法第三实施例。
参照图5,本实施例是第一实施例中步骤S30的细化,本实施例中具体说明了通过异步方式进行操作任务状态更新,实现操作任务管理的方式,包括:
步骤S34,接收所述外部平台反馈的所述操作任务的第二任务标识,生成所述第二任务标识对应的异步响应实例,其中,所述异步响应实例中设置监听器,所述监听器中设置回调方法。
微服务平台接收所述外部平台反馈的操作任务的第二任务标识,微服务平台生成第二任务标识对应的异步响应实例,其中,异步响应实例中设置监听器,所述监听器中设置回调方法。
步骤S35,在所述异步响应实例监听到所述第二任务标识对应操作任务的触发事件时,执行所述回调方法并按照所述触发事件调整所述操作任务的状态,直至所述操作任务执行完成。
微服务平台通过异步响应实例对第二任务标识对应操作任务进行监听,在监听到第二任务标识对应操作任务的触发事件时,微服务平台执行回调方法并按照触发事件的实际信息调整操作任务的状态,直至操作任务执行完成。
即,操作任务在外部平台执行时,会有任务状态的翻转,也会有任务日志的产生,一旦有这些任务信息的产生,外部平台就把这些数据打包封装发送到微服务平台指定的用于异步回调的restful接口。该restful接口被调用后,微服务平台会对该操作任务进行管理。微服务平台会根据restful接口中所带的任务的第二任务表,找到操作任务,如果请求中携带了状态翻转或日志等信息,对应的任务中的监听器就会调用设置好的回调方法,回调方法包括微服务平台中任务的状态翻转、任务翻转之后的后续操作(例如持久化到数据等)、以及日志写入到微服务平台管理的目录中。
本实施例中通信协议采用HTTP实现和部署简单,同时使用监听器方式实现了任务在状态信息改变时的回调,回调方式采用HTTP的方式的进行的,为每一个操作任务设定一个url(url的设计可以由${prefix前缀}/${任务id}/callback回调构成,这样外部平台进行调用url之后,微服务平台就可以直接知道外部平台想要更新的任务标识,然后通过任务标识,找到该操作任务,对该任务进行更新),外部平台只需要请求这个url就可以实现异步返回,任务在外部系统执行之后,外部平台返回一个异步的响应,并将产生的信息返回给被微服务平台,实现了两个平台之间便捷地异步通信。
进一步地,基于本发明基于平台交互的任务处理方法的上述实施例,提出本发明基于平台交互的任务处理方法第四实施例。
本实施例中可以与其他任意一个实施例进行结合,本实施例中微服务平台可以下线一些外部平台,包括:
在接收到外部平台下线请求时,获取外部平台下线请求对应的平台标识;
查询微服务平台的插件目录,获取所述平台标识对应的jar包,删除所述jar包,并下线所述平台标识对应的外部平台。
本实施例中微服务平台接收到外部平台下线请求时,微服务平台获取外部平台下线请求对应的平台标识;微服务平台查询自身的插件目录,微服务平台获取平台标识对应的jar包,微服务平台删除jar包,以下线平台标识对应的外部平台。本实施例中微服务平台可以通过删除jar包的方式进行外部平台的下线,实现了外部平台的热插拔,外部平台下线也不会影响到微服务平台,或者与微服务平台交互的其他操作平台。
本发明实施例还提供一种基于平台交互的任务处理系统,所述基于平台交互的任务处理装置包括:通信连接的微服务平台和外部平台,所述微服务平台和所述外部平台交互实现以下步骤:
微服务平台在接收到操作任务时,微服务平台获取所述操作任务对应的任务信息;
微服务平台根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,微服务平台则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
外部平台执行所述操作任务,产生所述操作任务对应的日志或状态信息,外部平台调用所述微服务平台的网络接口反馈所述日志或所述状态信息;
微服务平台在检测到所述网络接口被调用时,微服务平台获取所述网络接口反馈的所述日志或所述状态信息;
微服务平台根据所述日志或所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
参照图6,本实施例中用户提交任务到微服务平台,微服务平台在接收到操作任务时,微服务平台获取所述操作任务对应的任务信息,微服务平台根据任务信息,确定微服务平台不支持执行该操作任务,需要借助外部平台进行执行,微服务平台将操作任务提交至预设代理节点,通过预设代理节点将操作任务提交至外部平台,以使外部平台处理操作任务。
外部平台接收到请求之后,外部平台会将操作任务重新封装成一个它本身能执行的任务。生成任务之后,外部平台就返回响应给微服务平台。微服务平台中的预设代理节点收到这个响应之后,会生成一个异步的响应实例,该实例中会设置一个监听器,监听器中设置了回调方法,一旦监听到触发它的事件,就执行该回调方法,以调用微服务平台的网络接口反馈操作任务的日志或状态信息。
微服务平台在检测到网络接口被调用时,微服务平台获取网络接口反馈的日志或所述状态信息;微服务平台根据日志或状态信息对操作任务进行状态翻转,直至操作任务执行完成。
上述平台交互的任务处理系统所执行的方法可参照本发明基于平台交互的任务处理方法各个实施例,此处不再赘述。
参照图7,本发明实施例还提供一种基于平台交互的任务处理装置,所述基于平台交互的任务处理装置包括:
请求接收模块10,用于在接收到操作任务时,获取所述操作任务对应的任务信息;
转移判断模块20,用于根据所述任务信息判断是否要转移所述操作任务;
任务转发模块30,用于若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收翻转模块40,用于接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
在一实施例中,所述基于平台交互的任务处理装置,包括:
信息获取模块,用于在接收到外部平台接入请求时,获取外部平台接入请求对应的接入信息,其中,所述接入信息中包含实现微服务平台与外部平台之间交互的代码;
信息插入模块,用于将所述接入信息中的代码编译形成jar包,将所述jar包添加至所述微服务平台的插件目录下;
加载生成模块,用于在接收到微服务启动请求时,查询所述插件目录加载所述jar包,形成预设代理节点。
在一实施例中,所述转移判断模块20,包括:
标识提取单元,用于提取所述任务信息中的第一任务标识,确定所述第一任务标识对应的任务类型;
第一判定单元,用于若所述第一任务标识对应的任务类型为微服务任务类型,则判定不要转移所述操作任务;
第二判定单元,用于若所述第一任务标识对应的任务类型为代理任务类型,则判定要转移所述操作任务。
在一实施例中,所述接收翻转模块40,包括:
接收生成单元,用于接收所述外部平台为所述操作任务设置的第二任务标识,将所述第二任务标识封装,生成包含所述第二任务标识的获取请求;
请求发送单元,用于通过所述预设代理节点将所述获取请求发送至外部平台,以使所述外部平台根据所述获取请求中的第二任务标识定位所述操作任务,并获取所述操作任务对应的日志或者状态信息;
接收调整单元,用于接收所述外部平台反馈至所述预设代理节点的所述获取请求对应的日志或状态信息,根据所述日志或所述状态信息调整所述操作任务的状态,直至所述操作任务执行完成。
在一实施例中,所述接收翻转模块40,包括:
接收生成单元,用于接收所述外部平台反馈的所述操作任务的第二任务标识,生成所述第二任务标识对应的异步响应实例,其中,所述异步响应实例中设置监听器,所述监听器中设置回调方法;
回调翻转单元,用于在所述异步响应实例监听到所述第二任务标识对应操作任务的触发事件时,执行所述回调方法并按照所述触发事件调整所述操作任务的状态,直至所述操作任务执行完成。
在一实施例中,所述的基于平台交互的任务处理装置,包括:
资源释放模块,用于在检测到所述操作任务执行完成时,将所述操作任务的执行结果信息反馈至用户端,并释放所述操作任务的资源。
在一实施例中,所述的基于平台交互的任务处理装置,包括:
下线请求模块,用于在接收到外部平台下线请求时,获取外部平台下线请求对应的平台标识;
平台下线模块,用于查询微服务平台的插件目录,获取所述平台标识对应的jar包,删除所述jar包,并下线所述平台标识对应的外部平台。
上述各程序模块所执行的方法可参照本发明基于平台交互的任务处理方法各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有基于平台交互的任务处理程序,所述基于平台交互的任务处理程序被处理器执行时实现如上所述的基于平台交互的任务处理方法的步骤。
其中,在所述处理器上运行的基于平台交互的任务处理程序被执行时所实现的方法可参照本发明基于平台交互的任务处理方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (11)
1.一种基于平台交互的任务处理方法,其特征在于,所述基于平台交互的任务处理方法包括如下步骤:
在接收到操作任务时,获取所述操作任务对应的任务信息;
根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
2.如权利要求1所述的基于平台交互的任务处理方法,其特征在于,所述在接收到操作任务时,获取所述操作任务对应的任务信息的步骤之前,包括:
在接收到外部平台接入请求时,获取外部平台接入请求对应的接入信息,其中,所述接入信息中包含实现微服务平台与外部平台之间交互的代码;
将所述接入信息中的代码编译形成jar包,将所述jar包添加至所述微服务平台的插件目录下;
在接收到微服务启动请求时,查询所述插件目录加载所述jar包,形成预设代理节点。
3.如权利要求1所述的基于平台交互的任务处理方法,其特征在于,所述根据所述任务信息判断是否要转移所述操作任务的步骤,包括:
提取所述任务信息中的第一任务标识,确定所述第一任务标识对应的任务类型;
若所述第一任务标识对应的任务类型为微服务任务类型,则判定不要转移所述操作任务;
若所述第一任务标识对应的任务类型为代理任务类型,则判定要转移所述操作任务。
4.如权利要求1所述的基于平台交互的任务处理方法,其特征在于,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤,包括:
接收所述外部平台为所述操作任务设置的第二任务标识,将所述第二任务标识封装,生成包含所述第二任务标识的获取请求;
通过所述预设代理节点将所述获取请求发送至外部平台,以使所述外部平台根据所述获取请求中的第二任务标识定位所述操作任务,并获取所述操作任务对应的日志或者状态信息;
接收所述外部平台反馈至所述预设代理节点的所述获取请求对应的日志或状态信息,根据所述日志或所述状态信息调整所述操作任务的状态,直至所述操作任务执行完成。
5.如权利要求1所述的基于平台交互的任务处理方法,其特征在于,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤,包括:
接收所述外部平台反馈的所述操作任务的第二任务标识,生成所述第二任务标识对应的异步响应实例,其中,所述异步响应实例中设置监听器,所述监听器中设置回调方法;
在所述异步响应实例监听到所述第二任务标识对应操作任务的触发事件时,执行所述回调方法并按照所述触发事件调整所述操作任务的状态,直至所述操作任务执行完成。
6.如权利要求1所述的基于平台交互的任务处理方法,其特征在于,所述接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成的步骤之后,包括:
在检测到所述操作任务执行完成时,将所述操作任务的执行结果信息反馈至用户端,并释放所述操作任务的资源。
7.如权利要求1至6任意一项所述的基于平台交互的任务处理方法,其特征在于,所述基于平台交互的任务处理方法,还包括:
在接收到外部平台下线请求时,获取外部平台下线请求对应的平台标识;
查询微服务平台的插件目录,获取所述平台标识对应的jar包,删除所述jar包,并下线所述平台标识对应的外部平台。
8.一种基于平台交互的任务处理系统,其特征在于,所述基于平台交互的任务处理系统包括:通信连接的微服务平台和外部平台,所述微服务平台和所述外部平台交互实现以下步骤:
微服务平台在接收到操作任务时,微服务平台获取所述操作任务对应的任务信息;
微服务平台根据所述任务信息判断是否要转移所述操作任务;
若要转移所述操作任务,微服务平台则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
外部平台执行所述操作任务,产生所述操作任务对应的日志或状态信息,外部平台调用所述微服务平台的网络接口反馈所述日志或所述状态信息;
微服务平台在检测到所述网络接口被调用时,微服务平台获取所述网络接口反馈的所述日志或所述状态信息;
微服务平台根据所述日志或所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
9.一种基于平台交互的任务处理装置,其特征在于,所述基于平台交互的任务处理装置包括:
请求接收模块,用于在接收到操作任务时,获取所述操作任务对应的任务信息;
转移判断模块,用于根据所述任务信息判断是否要转移所述操作任务;
任务转发模块,用于若要转移所述操作任务,则通过所述预设代理节点将所述操作任务提交至外部平台,以使外部平台处理所述操作任务;
接收翻转模块,用于接收所述外部平台反馈的所述操作任务的状态信息,根据所述状态信息对所述操作任务进行状态翻转,直至所述操作任务执行完成。
10.一种基于平台交互的任务处理设备,其特征在于,所述基于平台交互的任务处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于平台交互的任务处理程序,所述基于平台交互的任务处理程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于平台交互的任务处理方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于平台交互的任务处理程序,所述基于平台交互的任务处理程序被处理器执行时实现如权利要求1至7中任一项所述的基于平台交互的任务处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110236.XA CN110851261A (zh) | 2019-11-13 | 2019-11-13 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
PCT/CN2020/126822 WO2021093671A1 (zh) | 2019-11-13 | 2020-11-05 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110236.XA CN110851261A (zh) | 2019-11-13 | 2019-11-13 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851261A true CN110851261A (zh) | 2020-02-28 |
Family
ID=69600211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911110236.XA Pending CN110851261A (zh) | 2019-11-13 | 2019-11-13 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110851261A (zh) |
WO (1) | WO2021093671A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
WO2021093671A1 (zh) * | 2019-11-13 | 2021-05-20 | 深圳前海微众银行股份有限公司 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511895A (zh) * | 2014-09-24 | 2016-04-20 | 中兴通讯股份有限公司 | 运行环境的配置方法及装置、系统 |
CN105677453B (zh) * | 2014-11-19 | 2020-03-10 | 腾讯科技(上海)有限公司 | 任务平台任务处理方法和装置 |
CN105704178B (zh) * | 2014-11-26 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务平台的接入方法及装置 |
CN109814917A (zh) * | 2019-01-16 | 2019-05-28 | 中国平安财产保险股份有限公司 | 微服务发布方法、装置、计算机设备和存储介质 |
CN110851261A (zh) * | 2019-11-13 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
-
2019
- 2019-11-13 CN CN201911110236.XA patent/CN110851261A/zh active Pending
-
2020
- 2020-11-05 WO PCT/CN2020/126822 patent/WO2021093671A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093671A1 (zh) * | 2019-11-13 | 2021-05-20 | 深圳前海微众银行股份有限公司 | 任务处理方法、系统、装置、设备及计算机可读存储介质 |
CN111949326A (zh) * | 2020-08-03 | 2020-11-17 | 杭州当虹科技股份有限公司 | 一种基于Activiti的微服务工作流方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021093671A1 (zh) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318358B2 (en) | System and method for extending a web service environment to support scalable asynchronous clients | |
EP3837604B1 (en) | In situ triggered function as a service within a service mesh | |
US9020885B2 (en) | Systems and methods for collaboration shared state management | |
EP0817043B1 (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
AU2005246375B2 (en) | Systems and methods for enterprise collaboration | |
CN110352401B (zh) | 具有按需代码执行能力的本地装置协调器 | |
US20050278294A1 (en) | Systems and methods for a collaboration presence framework | |
US20050262185A1 (en) | Systems and methods for a collaboration messaging framework | |
CN103294455A (zh) | 一种软件服务实现方法、系统及Java平台 | |
US20050273714A1 (en) | Systems and methods for an embedded collaboration client | |
CN111258723B (zh) | 分布式系统的事务处理方法、装置、系统、介质及设备 | |
CN110851261A (zh) | 任务处理方法、系统、装置、设备及计算机可读存储介质 | |
CN111858101B (zh) | 面向云架构系统的适配方法、装置、设备及存储介质 | |
CN108475220B (zh) | 用于集成事务中间件平台与集中式审计框架的系统和方法 | |
CN106713395B (zh) | 数据下载方法和装置 | |
CN113835911A (zh) | 内网穿透代理方法、系统、主机及计算机可读存储介质 | |
CN113626225B (zh) | 程序调用方法、终端设备及介质 | |
CN109408251B (zh) | 消息发送方法与装置、消息接收处理方法与装置 | |
CN108845800B (zh) | 一种组件扩展功能的实现方法、装置、设备及存储介质 | |
WO2018068655A1 (zh) | 一种许可管理方法和系统 | |
CN114721842A (zh) | 服务调用方法、装置及电子设备 | |
US10846156B2 (en) | Methods, devices and computer program products for managing software function | |
CN115065686B (zh) | 分布式负载均衡系统的配置方法、装置及系统 | |
CN112416462B (zh) | 离线h5应用加载方法及系统 | |
CN110278248B (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 |