CN115374175A - 基于微服务架构的任务执行进度的跟踪方法及装置 - Google Patents
基于微服务架构的任务执行进度的跟踪方法及装置 Download PDFInfo
- Publication number
- CN115374175A CN115374175A CN202110540755.0A CN202110540755A CN115374175A CN 115374175 A CN115374175 A CN 115374175A CN 202110540755 A CN202110540755 A CN 202110540755A CN 115374175 A CN115374175 A CN 115374175A
- Authority
- CN
- China
- Prior art keywords
- task
- service
- micro
- file
- processed
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种基于微服务架构的任务执行进度的跟踪方法及装置,涉及区块链技术领域,微服务架构中包括任务状态微服务和异步任务微服务,该方法包括:调用异步任务微服务获取与目标任务对应的待处理文件,根据目标任务进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况;调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,将目标任务的当前处理进度信息发送至发送端。本申请实施例能够针对大数据计算任务,利用微服务架构使得目标任务的执行与任务执行进度的更新解耦,发送端获取处理进度信息的耗时大大降低。
Description
技术领域
本申请涉及区块链技术领域,具体而言,本申请涉及一种任务执行进度的跟踪方法及装置。
背景技术
当用户通过客户端请求服务端传输大文件(包括上传和下载)时,服务端如果直接将大文件全部内容传输给客户端,需要消耗较多时间,通常客户端会有超时限制,当处理时间超过设置的超时时间,用户端将会与服务端断开连接,用户将收到超时报错,最终文件下载失败。
为了解决上述问题,业界中常采用断点续传技术方案来实现大文件的传输,例如当客户端请求服务端传输大文件时,服务端将大文件分片后,分别响应给客户端,在传输过程中,当客户端接收到某一分片后,可以根据该分片占整个大文件的占比,确定出传输的进度。
但上述在传输任务中确定任务执行进度的方法并不适用于大数据计算任务,这是因为大数据计算任务是发生于服务端的,而服务端对大数据计算的处理并不涉及与客户端的交互,因此,在现有技术中,客户端向服务端指示执行大数据计算任务后,服务端只有在任务执行结束后才能够向客户端返回处理结果。并且在面对不同的大数据计算任务时,开发人员需要针对每种任务场景下的软件设计相对应的实现,研发需要投入成本极高,且***耦合严重、实现复杂,不利于***的维护与交接。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的基于微服务架构的任务执行进度的跟踪方法及装置。
第一方面,提供了一种基于微服务架构的任务执行进度的跟踪方法,微服务架构中包括任务状态微服务和异步任务微服务,跟踪方法包括:
调用异步任务微服务获取与目标任务对应的待处理文件,待处理文件包括至少两个待处理数据,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况;
调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,并且响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端。
第二方面,提供了一种基于微服务架构的任务执行进度的跟踪装置,微服务架构中包括任务状态微服务和异步任务微服务,跟踪装置包括:
异步任务服务模块,用于调用异步任务微服务获取与目标任务对应的待处理文件,待处理文件包括至少两个待处理数据,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,则向任务状态微服务通知目标任务的执行情况;
任务状态服务模块,用于调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,并且响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
第五方面,本发明实施例提供一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
本发明实施例提供的基于微服务架构的任务执行进度的跟踪方法、装置、电子设备及存储介质,针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的任务执行进度的跟踪方法的实施环境的示意图;
图2为本申请实施例的任务执行进度的跟踪方法的流程示意图;
图3为本申请实施例的微服务架构的交互示意图;
图4为本申请一个实施例对excel电子表格执行目标任务的执行进度的跟踪示意图;
图5为本申请一个实施例对excel电子表格执行目标任务的执行进度的跟踪示意图;
图6为本申请另一个实施例的微服务架构的交互示意图;
图7为本申请再一个实施例的微服务架构的交互示意图;
图8为本申请实施例提供的一种基于微服务架构的任务执行进度的跟踪装置的结构示意图;
图9为本发明实施例提供的分布式***应用于区块链***的一个可选的结构示意图;
图10为本发明实施例提供的区块结构一个可选的示意图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
首先对本申请涉及的几个名词进行介绍和解释:
1、耗时任务:需要消耗长时间执行的计算任务。
2、客户端:也称为用户端,是指与服务器相对应,直接为客户提供服务的程序。
3、服务端:服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据。
4、Hash:一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以具有单向不可逆的特性,也即不可能从散列值来确定唯一的输入值逆。
5、区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础微服务部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
6、大数据(Big data),是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。
本申请提供的任务执行进度的跟踪方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
可选地,本申请提供的任务执行进度的更新方法的应用场景包括但不限于以下几种中的至少一种:
1、用户界面的更新场景,用户界面的更新是一种较为常见的耗时任务,在将用户界面的更新文件发送至用户终端前,需要在云端对更新文件进行校验、适配等等计算操作,这些计算操作就构成了一个耗时任务。在现有技术中,由于这一过程发送在更新文件下载前,因此在用户界面上只会显示进度为0%(该进度实际上指的是下载进度,而非计算操作的执行进度),用户需要等待较长的时间,并且也不知道这一状态将要持续多长时间,用户体验较差。在该应用场景,本申请的发送端——用于更新用户界面的更新服务器发送用户界面的更新请求,由基于微服务架构的任务执行进度的跟踪装置获取耗时任务对应的待处理文件,也即更新文件,通过响应于来自发送端的针对耗时任务的任务进度查询请求,将耗时任务的当前处理进度信息发送至更新服务器,并由更新服务器进一步转发至用户终端,使用户通过用户终端获知更新文件在下载到终端前的处理进度。
2、商户大数据分析,商户大数据分析需要对海量的大数据,通过分析模型,挖掘用户行为数据价值、产品的关键增长点、优化用户的留存转换等等,这一过程需要进行清洗、计算以及存储等非常耗时的处理,相关技术仅能在分析完成后给出分析结果,无法让用户知道分析进度。本申请的发送端——数据服务器发送待处理文件,也即商户大数据,由基于微服务架构的任务执行进度的跟踪装置对大数据进行分析,同时在对每一条数据分析完成后,实时更新处理进度信息,当接收到来自发送端的任务进度查询请求后,将分析任务的当前处理进度信息发送至发送端,使得用户可以实时知晓分析的进展。
3、商户大数据导入,商户积累的海量业务数据需要导入至数据库。在这种场景下,文件导入需要消耗较长时间,上传后对文件中的数据进行合法性判断,仍然需要消耗较长时间,文件中的数据经过合法性判断后,进行相应的计算,存储,这个过程也需要消耗较长时间。本申请的发送端——数据服务器上传业务数据,由基于微服务架构的任务执行进度的跟踪装置对业务数据进行合法性判断、计算以及存储等操作,同时在对每一条数据操作完成后,实时更新处理进度信息,当接收到来自发送端的任务进度查询请求后,将分析任务的当前处理进度信息发送至发送端,使得用户可以实时知晓分析的进展,如果过程中发现一些数据有问题,需要精准提醒,数据导入完成,需要提醒用户。
当然,本申请提供的基于微服务架构的任务执行进度的跟踪方法的应用场景不限于上述情况,其他需要消耗长时间执行的任务,但用户需要随时掌握这些任务的执行进度的应用场景也在本申请的保护范围之内。
本申请实施例的基于微服务架构的任务执行进度的跟踪方法,微服务架构中包括任务状态微服务和异步任务微服务,跟踪方法可以包括:调用异步任务微服务获取与目标任务对应的待处理文件,待处理文件包括至少两个待处理数据,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况;调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,并且响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端。
应理解,本申请实施例提供的基于微服务架构的任务执行进度的跟踪方法可以应用于服务器,具体可以为应用服务器,也可以为Web服务器,在实际部署时,该服务器可以为独立服务器,也可以为集群服务器或者云服务器。
请参阅图1,其示例性地示出了本申请实施例提供的任务执行进度的跟踪方法的实施环境的示意图,如图1所示,该实施环境包括:服务器100和多个用户设备200。
用户设备是指用户使用的终端设备,包括但不限于智能手机、平板电脑、便携式计算机、可穿戴设备、车机设备、车载终端等等。用户设备上安装有服务器100提供服务的目标应用程序,目标应用程序可以为应用程序或者操作***,目标应用程序为对大文件进行业务分析的实现提供运行环境。例如目标应用程序可以为商业数据分析软件。再如,目标应用程序可以为安卓(Android)操作***,商业数据分析服务可以基于目标应用程序的快应用实现,目标应用程序为用于提供商业数据分析服务的快应用提供运行环境。用户可以借助用户设备200向服务器100发送任务执行进度的跟踪请求,该跟踪请求可以包括待处理的商业数据。
当任一用户在用户设备上触发了任务执行进度的跟踪请求之后,该用户设备将该任务执行进度的跟踪请求发送至服务器100,以使服务器100能够基于该任务执行进度的跟踪请求确定商业数据的分析进度。
本申请实施例的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例的服务器的执行方法可以以云计算(Cloud Computing)的形式完成,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作***)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、***器等。一般来说,SaaS和PaaS相对于IaaS是上层。
服务器100用于执行本申请实施例提供的任务执行进度的跟踪方法,根据用户设备发送的商业数据,在对商业数据进行分析的同时,还能跟实时跟踪执行进度,并将当前的执行进度发送至用户设备,如果执行过程出现异常,用户可以及时作出响应。
应理解,图1提供的应用场景仅为示例,在实际应用中,本申请实施例提供的任务执行进度的跟踪方法还可以应用于其他需要进行任务执行进度的跟踪的应用场景,在此不对本申请实施例提供的任务执行进度的跟踪方法的应用场景的组成部分做任何限定。
请参阅图2,其示例性地示出了本申请实施例的基于微服务架构的任务执行进度的跟踪方法的流程示意图,微服务架构中包括任务状态微服务和异步任务微服务,如图2所示,包括:
S101、调用异步任务微服务获取与目标任务对应的待处理文件,待处理文件包括至少两个待处理数据,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况。
本申请实施例通过微服务架构实现任务执行进度的跟踪,微服务架构能够实现由小型自主服务组成一个整体应用,各个组成部分之间是松耦合的,复杂性低,各个部分可以独立部署,修复bug或者引入新特性更容易,能够独立扩展,不同技术栈之间可以使用不同框架、不同版本库甚至不同的操作***平台。
本申请实施例通过微服务架构中的任务状态微服务和异步任务微服务,将任务执行和进度跟踪进行解耦,从而实现对大数据计算任务的执行进度的实时跟踪。
本申请实施例在对任务执行进度进行跟踪时,需要调用异步任务微服务获取目标任务对应的待处理文件,本申请实施例的目标任务是大数据计算任务等耗时任务,应当理解的是,待处理文件的体量一般较大,需要进行长时间的处理才能够获得处理结果,本申请实施例的待处理文件的大小可以不小于1万亿字节(TB,terabyte)。待处理文件包括至少两个待处理数据,以待处理文件为excel电子表格为例,每个待处理数据可以是excel电子表格中的一行或者一列数据。
在获取待处理文件后,根据目标任务对待处理文件的至少两个待处理数据进行大数据计算处理,本申请实施例对于目标任务的具体内容不同限定,可根据实际的业务需求进行调整,例如可以包括对待处理文件的鉴权、查找待处理文件的漏洞bug等等。
本申请实施例通过调用异步任务微服务,每当得到至少一个待处理数据的处理结果后,就需要调用任务状态微服务对目标任务的处理进度信息进行更新,当得到所有待处理数据的处理结果后,可以不再对处理进度信息进行更新,也可以是在接收到发送端指示停止目标任务的执行时,不再对处理进度信息进行更新。
S102、调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,并且响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端。
本申请实施例在调用异步任务微服务对待处理数据进行处理的过程中,还调用任务状态微服务实时更新处理进度信息,从而在获取到来自发送端的针对目标任务的任务进度查询请求时,能够直接将更新的处理进度信息发送至发送端,避免了现有技术需要等到任务处理完成后才能反馈处理进度的弊端。
本申请实施例在对处理进度信息更新时,可以是在处理进度信息中新增得到的至少一个待处理数据的处理结果,在这种情况下,处理进度信息中包括了目标任务执行以来的每一个待处理数据的处理结果;也可以是在处理进度信息中利用新得到的待处理数据的处理结果覆盖上一次得到的待处理数据的处理结果,在这种情况下,处理进度信息中包括的是每一次最新得到的待处理数据的处理结果,还可以是根据已经得到的待处理数据的数量与待处理数据的总数量的比值,获得的量化后的进度值,本申请实施例不作具体的限定。
本申请实施例的基于微服务架构的任务执行进度的跟踪方法,针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
请参见图3,其示例性地示出了本申请实施例的微服务架构的交互示意图,如图所示,微服务架构包括3层,分别为展示层、服务层和存储层:
展示层包括发送端,发送端能够向用户提供发送任务执行请求和展示任务执行进度信息的界面。
服务层包括异步任务微服务和任务状态微服务。由于本微服务架构针对大批量数据的处理,整个执行过程长,需要消耗的IO(输入/输出,Input/Output),存储资源较大,所以本申请实施例的服务层的各微服务采用C++等相对高效、稳定的语言及框架实现。
存储层包括用于存储待处理文件的第一数据库以及存储处理进度信息的第二数据库。
展示层中的发送端向服务层中的异步任务微服务发送任务执行请求;调用异步任务微服务从第一数据库中获取目标任务对应的待处理文件,待处理文件包括至少两个待处理数据;根据目标任务对至少两个待处理数据进行处理;每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,在第二数据库中对目标任务的处理进度信息进行更新;发送端向服务层中的任务状态微服务发送针对目标任务的任务进度查询请求,调用任务状态微服务响应于来自发送端的针对目标任务的任务进度查询请求,从第二数据库中获取目标任务的当前处理进度信息,并发送至发送端。
在上述各实施例的基础上,作为一种可选实施例,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,以下两种情况:
情况一:每得到一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况
在此情况下,每当得到一个待处理数据的处理结果,都会对目标任务的处理进度信息进行更新。
请参阅图4,其示例性地示出了本申请一个实施例对excel电子表格执行目标任务的执行进度的跟踪示意图,如图所示,该excel电子表格记录了某公司的财务数据,其中包括9行数据,通过目标任务对每行数据进行数据分析,在处理过程中,每得到一行数据的处理结果,也即本年度和上年数相比的变动数,本申请实施例会根据该行数据的处理结果对目标任务的处理进度信息进行更新,例如在第1行数据处理完成后,处理进度信息更新为:已处理完成数据1,在第2行数据处理完成后,处理进度信息更新为:已处理完成数据1-2,…,在最后一行数据处理完成后,进行第9次处理进度信息更新为:已处理完成数据1-9。
情况二:依据预定的时间间隔,每次时间间隔内得到待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况。
在此情况下,每隔预设时间获取一次在该时间价格内得到的待处理数据结果,这就导致在不同的时刻,待处理数据的处理量可能存在差异,请参见图5,其示例性地示出了本申请另一个实施例对excel电子表格执行目标任务的执行进度的跟踪示意图,图5中的excel电子表格与图4中的excel电子表格相同,均包括9行数据,通过目标任务对每行数据进行数据分析,在处理过程中,按照预设的时间间隔,获取在时间间隔内得到的行数据的处理进度信息,如图所示,在第一个时间间隔,获得了2行数据的处理结果,相应的处理进度信息更新为:已处理完成数据1-2;在第二个时间间隔,获得了3行数据的处理结果,相应的处理信息更新为已处理完成数据1-5,在第三次时间间隔,获得了5行数据的处理结果,相应的处理信息更新为已处理完成数据1-9。
本申请实施例的微服务架构中还包括文件微服务。调用异步任务微服务获取与目标任务对应的待处理文件,之前还包括:
响应于来自发送端的文件上传请求,调用文件微服务将文件上传请求中包括的待处理文件上传至第一数据库,生成并向发送端返回待处理文件对应的文件标识,以使得发送端根据文件标识,指示执行待处理文件的目标任务。
应当注意的是,本申请实施例在调用异步任务微服务对待处理文件进行处理前,需要先调用文件微服务将发送端上传的待处理文件上传至第一数据库,也就是说,区别于常规的在本地执行处理操作的场景,本申请实施例对待处理文件的处理过程不是发生在发送端的本地,而是发生于线上。
本申请实施例的第一数据库可以为腾讯云对象存储(COS,cloudobjectstorage)平台,COS是一种存储海量数据的分布式存储服务,可以在任意位置存储和检索任意大小的数据。COS提供了多种对象的存储类型,可根据不同的业务需求搭配使用,COS提供了断点续传、自定义对象头部、静态网站、数据迁移等多种功能。
在上述各实施例的基础上,作为一种可选实施例,调用异步任务微服务获取与目标任务对应的待处理文件,之前还包括:
调用任务状态微服务依据任务执行请求携带的待处理文件的文件标识,创建待处理文件对应的目标任务并生成相应的任务信息,将目标任务以及任务信息发送至异步任务微服务。
应当理解的是,文件标识是待处理文件的唯一标识,能够唯一地表示一个待处理文件,通过调用任务状态微服务将待处理文件的文件标识返回给发送端,使得发送端后续可以通过指定文件标识的方式,快速地查询到对应的待处理文件的处理进度。
本申请实施例通过将文件标识发送至发送端,使得发送端后续根据文件标识创建任务执行请求。在接收到任务执行请求后,调用任务状态微服务创建与待处理文件对应的目标任务并生成相应的任务信息,任务信息包括目标任务的任务标识以及目标任务对应的待处理文件的文件标识,通过生成任务信息,建立任务标识和文件标识的对应关系,从而在后续快速响应获取待处理文件以及获取任务执行进度。
在上述各实施例的基础上,作为一种可选实施例,调用异步任务微服务获取与目标任务对应的待处理文件,包括:
调用异步任务微服务根据接收到的任务信息,确定与任务标识对应的文件标识,向文件微服务发送包括文件标识的文件获取请求,以接收文件微服务根据文件获取请求,从第一数据库中获取的与文件标识对应的待处理文件
本申请实施例通过调用任务状态微服务、异步任务微服务和文件微服务,使得文件标识从生成、到被利用进行待处理文件的获取的流程分工更加明确。
在上述各实施例的基础上,作为一种可选实施例,微服务架构中还包括接入微服务;本申请实施例的接入微服务可以采用常规的web脚本编写,也可以采用超文本预处理器(PHP,Pre Hypertext Preprocessor)、node.js、jsp(JavaServer Pages)等编写。
响应于来自发送端的文件上传请求,之前还包括:
响应于来自发送端的文件上传请求,调用文件微服务将文件上传请求中包括的待处理文件上传至第一数据库,生成并向发送端返回待处理文件对应的文件标识,以使得发送端根据文件标识,指示执行待处理文件的目标任务。
请参见图6,其示例性地示出了本申请另一个实施例的微服务架构的交互示意图,如图所示,在图3的基础上,本实施例的架构在展示层和服务层之间还进一步包括了接入层,并且服务层中进一步包括了文件微服务。
本申请实施例通过在展示层和服务层之间增加接入层,接入层能够与发送端直接对接,接收发送端发送的文件、请求等等,并且还可以增强架构的安全性,对于敏感的操作,例如数据处理、数据存储等都在服务层完成,避免服务层和发送端直接接触容易导致的数据泄密、污染等问题。
从架构层面来看,接入微服务只处理接入工作以及普通的合法性验证,数据粗粒度处理等,服务层负责具体的执行运算。当请求量或是要处理的计算任务比较大时,分层后各层的功能更加清晰,还能够保证可用性和易扩展性。
在图6中,展示层中的发送端发送文件上传请求,调用接入微服务接收文件上传请求,将文件上传请求发送至文件微服务,调用文件微服务将文件上传请求中包括的待处理文件上传至第一数据库,生成待处理文件对应的文件标识,将文件标识通过接入微服务返回至发送端,以使得发送端发送任务执行请求,指示服务层执行待处理文件的目标任务。调用接入微服务接收任务执行请求,将任务执行请求发送至任务状态微服务,调用任务状态微服务依据任务执行请求携带的待处理文件的文件标识,创建待处理文件对应的目标任务并生成相应的任务信息,将目标任务以及任务信息发送至异步任务微服务,调用异步任务微服务根据任务状态微服务发送的任务信息,确定与任务标识对应的文件标识,向文件微服务发送包括文件标识的待处理文件获取请求,以接收文件微服务从第一数据库中获取的与文件标识对应的待处理文件,调用异步任务微服务对待处理文件进行处理,调用任务状态微服务响应于得到至少一个待处理数据的处理结果,对第二数据库中目标任务的处理进度信息进行更新。
在上述各实施例的基础上,作为一种可选实施例,微服务架构还包括领域服务模块;响应于来自发送端的任务执行请求,之前还包括:
调用接入微服务接收来自发送端的任务执行请求,将任务执行请求发送至领域微服务,调用领域微服务将任务执行请求发送至任务状态微服务。
在上述各实施例的基础上,作为一种可选实施例,将目标任务以及任务信息发送至异步任务微服务,具体为:
调用任务状态微服务将目标任务的任务标识发送至领域微服务;
调用领域微服务将任务标识发送至异步任务微服务;
调用异步任务微服务根据接收到任务标识,向任务状态微服务发送任务信息获取请求;
调用任务状态微服务根据任务信息获取请求,向异步任务微服务返回任务标识对应的目标任务以及任务信息。
本申请实施例的任务标识包括哈希值,哈希值是根据预设的哈希算法,结合目标任务的类型以及任务创建时间生成的。
可以理解的是,目标任务的类型有多种,常见的类型包括查询类、运算类、校验类等等,其中查询类的目标任务即在待处理文件中查找某些特定的数据,运算类的目标任务即对待处理文件中的数据进行预设规则的运算,例如对数值与预设阈值间大小关系运算等等,校验类的目标任务即在待处理文件中对某些数据进行校验,判断其是否符合预设的要求。
在上述各实施例的基础上,作为一种可选实施例,本申请实施例的任务标识由28位数字组成,其中包括2位用于表示哈希算法类型的数字、14位用于表示任务创建时间的数字,包括年月日时分秒,8位用于表示哈希值的数字以及4位用于表示随机数的数字。
以任务标识:1020200214155906000123450000为例,其中10表示哈希算法类型,20200214155906表示任务创建时间的数字,即2020年2月14日15点59分6秒,00012345表示哈希值,0000表示随机数。
在上述各实施例的基础上,作为一种可选实施例,更新目标任务的处理进度,包括:
根据目标任务的任务标识中的哈希值,从第二数据库中的至少一个预设的存储区域中确定目标存储区域;
在目标存储区域中,确定键为任务标识的键值对,并将键值对的值更新为目标任务的执行进度信息。
本申请实施例在存储目标任务的执行进度信息时,根据目标任务的任务标识中的哈希值来确定存储的位置,可选的,本申请实施例可以对第二数据库划分为多个存储区域,然后对所有存储区域进行编号,通过取余的方式确定目标存储区域。例如,第二数据库中的存储区域的数量为1000,将哈希值作为8位自然数,对于哈希值为10000000的目标任务,该哈希值除以1000,余数为0,所以该目标任务的目标存储区域为编号为1000的存储区域,对于哈希值为10000012的目标任务,该哈希值除以1000,余数为12,所以该目标任务的目标存储区域为编号为12的存储区域,通过上述方法可以快速确定目标任务的执行进度信息所在的存储区域。
本申请实时以键值对的方式存储任务标识以及执行进度信息,从而使得后一次的执行进度信息覆盖前一次的执行进度信息,在每次搜索键值对时,获得的都是最新的执行进度信息。
在上述各实施例的基础上,作为一种可选实施例,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,包括:
根据任务进度查询请求中包括的任务标识,确定存储任务标识对应目标任务的处理进度信息的目标存储区域;
从目标存储区域中获取以任务标识为键的键值对,将键值对的值作为当前处理进度信息发送至发送端
本申请实施例利用任务标识中的哈希值,确定存储所对应目标任务的处理进度信息的目标存储区域,进一步在目标存储区域中搜索任务标识为键的键值对,将该键值对中的值作为当前处理进度信息发送至发送端。
在上述各实施例的基础上,作为一种可选实施例,将文件上传请求发送至文件微服务包括:
调用接入微服务对文件上传请求中的待处理文件进行安全验证,在安全验证通过后,将待处理文件发送至文件微服务。
本申请实施例的接入微服务能够承担一部分相对不耗时的处理步骤,例如安全验证,本申请实施例的安全验证可以包括合法性验证,即对于发送端的合法性、待处理文件的合法性进行验证。此外,接入微服务还可以承担对于数据粗粒度的处理,通过接入微服务提前确定待处理文件的数据粗粒度,能够为后续异步任务微服务预估处理时间奠定基础。
在上述各实施例的基础上,作为一种可选实施例,调用领域微服务将任务执行请求发送至任务状态微服务,包括:
建立任务状态微服务与领域微服务间的长连接,调用领域微服务通过长连接将任务执行请求发送至任务状态微服务。
常规方案中支持http请求的cgi连接方式属于短连接,这就导致每次请求都需要建立任务状态微服务与领域微服务间的连接,通过建立长连接,发送端后续查询任务进度时,不需要要每次都发https请求,提高了响应效率。
请参见图7,其示例性地示出了本申请再一个实施例的微服务架构的交互示意图,如图,在任务执行阶段,包括步骤1.1~1.12,在进度查询阶段,包括步骤2.1~2.2,具体地,
1.1用户通过发送端向接入微服务请求上传待处理文件,后续调用接入微服务在获得文件标识和任务标识时,将向发送端返回,从而供发送端发送;
1.2调用接入微服务对上传的待处理文件进行合法性等校验;
1.3调用接入微服务在校验通过后将用户上传的待处理文件发送至文件服务微服务进行存储,在待处理文件存储后,生成文件标识,通过调用接入微服务返回至发送端;
需要注意的是,本申请实施例通过调用文件服务微服务能够进行文件上传,也即将待处理文件发送到第一数据库,还能够进行文件下载,也即将待处理文件从第一数据库中下载下来发送至异步任务服务微服务进行处理,还可以进行文件访问鉴权,当其他发送端想要访问第一数据库中的待处理文件时,文件服务微服务会对其他发送端的访问权限进行鉴定,从而保证数据安全;
1.4调用接入微服务将文件标识发送至领域微服务,后续可以调用领域微服务根据文件标识指示创建任务、激活任务以及向发送端反馈任务标识;
1.5调用领域微服务向任务状态微服务指示创建任务,在指示时,携带文件标识,领域微服务在创建目标任务后,向接入微服务返回任务标识,接入微服务将任务标识返回发送端;
1.6调用领域微服务指示异步任务微服务激活任务,指示时携带任务标识;
1.7调用异步任务微服务根据任务标识,向任务状态微服务查询目标任务,任务状态微服务向异步任务微服务返回文件标识;
1.8调用异步任务微服务向文件微服务请求下载待处理文件,请求中包括文件标识,文件微服务向异步任务微服务返回文件标识对应的待处理文件;
1.9调用异步任务微服务对待处理文件中的数据逐条进行处理,获得每条数据的处理结果;
1.10调用异步任务微服务在每处理完一条数据后,向任务状态微服务反馈处理结果,以使得任务状态微服务更新处理进度信息;
1.11当异步任务微服务执行完目标任务后,向文件微服务上传任务处理的详细结果;
1.12调用异步任务微服务向任务状态微服务发送执行完毕的信息,以使得任务状态微服务更新任务执行结果,任务执行进度信息更新完毕。
在上述过程中,本申请实施例的微服务架构中还可以设置任务维护工具,由任务维护工具向任务状态微服务发送任务查看指令或任务终止指令,当发送任务查看指令时,任务状态微服务查询任务的执行进度并反馈给任务维护工具,当发送任务终止指令时,任务状态微服务向异步任务微服务转发该任务终止指令,以使得异步任务微服务终止任务的执行。
2.1发送端向接入微服务发送查询进度的请求,请求中携带任务标识;
2.2调用接入微服务向任务状态微服务请求查询任务的执行进度,请求中携带任务标识,任务状态微服务根据任务标识查找目标任务的当前处理进度信息(也即图中的当前状态信息),调用接入微服务将当前状态信息返回至发送端。
本申请实施例提供了一种基于微服务架构的任务执行进度的跟踪装置,微服务架构中包括任务状态微服务和异步任务微服务,如图8所示,该跟踪装置可以包括:异步任务服务模块101和任务状态服务模块102,具体地:
异步任务服务模块101,用于调用异步任务微服务获取与目标任务对应的待处理文件,待处理文件包括至少两个待处理数据,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,则向任务状态微服务通知目标任务的执行情况;
任务状态服务模块102,用于调用任务状态微服务响应于接收到目标任务的执行情况的通知,更新目标任务的处理进度,并且响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端。
本发明实施例提供的基于微服务架构的任务执行进度的跟踪装置,具体执行上述方法实施例流程,具体请详见上述基于微服务架构的任务执行进度的跟踪方法实施例的内容,在此不再赘述。本发明实施例提供的基于微服务架构的任务执行进度的跟踪装置,针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
在上述各实施例的基础上,作为一种可选实施例,异步任务服务模块每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,包括:
每得到一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况;或者
依据预定的时间间隔,每次时间间隔内得到待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况。
在上述各实施例的基础上,作为一种可选实施例,微服务架构中还包括文件微服务;
跟踪装置还包括:
文件标识获取模块,用于响应于来自发送端的文件上传请求,调用文件微服务将文件上传请求中包括的待处理文件上传至第一数据库,生成并向发送端返回待处理文件对应的文件标识,以使得发送端根据文件标识,指示执行待处理文件的目标任务。
在上述各实施例的基础上,作为一种可选实施例,跟踪装置还包括:
任务信息获取模块,用于响应于来自发送端的任务执行请求,调用任务状态微服务依据任务执行请求携带的待处理文件的文件标识,创建待处理文件对应的目标任务并生成相应的任务信息,将目标任务以及任务信息发送至异步任务微服务;
异步任务服务模块包括用于调用异步任务微服务获取与目标任务对应的待处理文件的文件获取子模块,文件获取子模块包括:
文件标识传递单元,用于调用异步任务微服务根据接收到的任务信息,确定与任务标识对应的文件标识,向文件微服务发送包括文件标识的文件获取请求,以接收文件微服务根据文件获取请求,从第一数据库中获取的与文件标识对应的待处理文件;
其中,任务信息中包括目标任务的任务标识以及目标任务对应的待处理文件的文件标识。
在上述各实施例的基础上,作为一种可选实施例,微服务架构中还包括接入微服务;文件标识获取模块包括:
文件上传请求发送子模块,用于在响应于来自发送端的文件上传请求之前,调用接入微服务接收来自发送端的文件上传请求,将文件上传请求发送至文件微服务。
在上述各实施例的基础上,作为一种可选实施例,微服务架构还包括领域服务模块;文件标识获取模块包括:
执行请求传递模块,用于在响应于来自发送端的任务执行请求之前,调用接入微服务接收来自发送端的任务执行请求,将任务执行请求发送至领域微服务,调用领域微服务将任务执行请求发送至任务状态微服务。
在上述各实施例的基础上,作为一种可选实施例,任务信息获取模块包括:
任务标识传递子模块,用于调用任务状态微服务将目标任务的任务标识发送至领域微服务,调用领域微服务将任务标识发送至异步任务微服务;
任务信息传递子模块,用于调用异步任务微服务根据接收到任务标识,向任务状态微服务发送任务信息获取请求,调用任务状态微服务根据任务信息获取请求,向异步任务微服务返回任务标识对应的目标任务以及任务信息。
在上述各实施例的基础上,作为一种可选实施例,任务标识包括哈希值:哈希值是根据预设的哈希算法,结合目标任务的类型以及任务创建时间生成的;
任务状态服务模块包括用于更新目标任务的处理进度的进度更新子模块,进度更新子模块包括:
存储区域确定单元,用于根据目标任务的任务标识中的哈希值,从第二数据库中的至少一个预设的存储区域中确定目标存储区域;
值更新单元,用于在目标存储区域中,确定键为任务标识的键值对,并将键值对的值更新为目标任务的执行进度信息。
在上述各实施例的基础上,作为一种可选实施例,任务状态服务模块包括用于响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端的进度反馈子模块,进度反馈子模块包括:
请求解析单元,用于根据任务进度查询请求中包括的任务标识,确定存储任务标识对应目标任务的处理进度信息的目标存储区域;
值获取单元,用于从目标存储区域中获取以任务标识为键的键值对,将键值对的值作为当前处理进度信息发送至发送端。
在上述各实施例的基础上,作为一种可选实施例,文件标识获取模块包括用于将文件上传请求发送至文件微服务的验证子模块,验证子模块具体用于调用接入微服务对文件上传请求中的待处理文件进行安全验证,在安全验证通过后,将待处理文件发送至文件微服务。
在上述各实施例的基础上,作为一种可选实施例,执行请求传递模块,包括:
长连接子模块,用于建立任务状态微服务与领域微服务间的长连接,调用领域微服务通过长连接将任务执行请求发送至任务状态微服务。
本发明实施例涉及的装置可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式***。
以分布式***为区块链***为例,参见图9,图9是本发明实施例提供的分布式***300应用于区块链***的一个可选的结构示意图,由多个节点400(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端500形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式***中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作***层和应用层。
参见图9示出的区块链***中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链***中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链***中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链***中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链***中节点提交的记录数据。
当本申请实施例应用于区块链***时,处理进度信息将以区块进行表征,当区块链***中的一个节点将记录的数据发送到区块链***中的其他节点时,该一个节点作为发送端,其他节点则作为接收端,发送端和接收端在进行交互时防窃听的方法可具体参见上述实施例,本申请不再赘述。
参见图10,图10是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
在一个可选实施例中提供了一种电子设备,如图11所示,图11所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscReadOnly Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
本申请实施例提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如前述方法实施例所示的内容。与现有技术相比,针对大数据计算任务,利用微服务架构中各服务松耦合、可独立部署的优势,一方面调用微服务架构中的异步任务微服务,获取目标任务对应的待处理文件,根据目标任务对至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向任务状态微服务通知目标任务的执行情况,另一方面调用微服务架构中的任务状态微服务,响应于得到至少一个待处理数据的处理结果,对目标任务的处理进度信息进行更新,响应于来自发送端的针对目标任务的任务进度查询请求,将目标任务的当前处理进度信息发送至发送端,使得目标任务的执行与任务执行进度的更新解耦,任务进度查询请求的响应与目标任务的执行不存在交叉,发送端获取处理进度信息的耗时大大降低。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种基于微服务架构的任务执行进度的跟踪方法,其特征在于,所述微服务架构中包括任务状态微服务和异步任务微服务,所述跟踪方法包括:
调用所述异步任务微服务获取与目标任务对应的待处理文件,所述待处理文件包括至少两个待处理数据,根据所述目标任务对所述至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,向所述任务状态微服务通知所述目标任务的执行情况;
调用所述任务状态微服务响应于接收到所述目标任务的执行情况的通知,更新所述目标任务的处理进度,并且响应于来自发送端的针对所述目标任务的任务进度查询请求,将所述目标任务的当前处理进度信息发送至所述发送端。
2.根据权利要求1所述的跟踪方法,其特征在于,所述每得到至少一个待处理数据的处理结果,向所述任务状态微服务通知所述目标任务的执行情况,包括:
每得到一个待处理数据的处理结果,向所述任务状态微服务通知所述目标任务的执行情况;或者
依据预定的时间间隔,每次时间间隔内得到待处理数据的处理结果,向所述任务状态微服务通知所述目标任务的执行情况。
3.根据权利要求1所述的跟踪方法,其特征在于,所述微服务架构中还包括文件微服务;
调用所述异步任务微服务获取与所述目标任务对应的待处理文件,之前还包括:
响应于来自所述发送端的文件上传请求,调用所述文件微服务将所述文件上传请求中包括的待处理文件上传至第一数据库,生成并向所述发送端返回所述待处理文件对应的文件标识,以使得所述发送端根据所述文件标识,指示执行所述待处理文件的所述目标任务。
4.根据权利要求3所述的跟踪方法,其特征在于,调用所述异步任务微服务获取与所述目标任务对应的待处理文件,之前还包括:
响应于来自所述发送端的任务执行请求,调用所述任务状态微服务依据所述任务执行请求携带的所述待处理文件的文件标识,创建所述待处理文件对应的目标任务并生成相应的任务信息,将所述目标任务以及任务信息发送至所述异步任务微服务;
调用所述异步任务微服务获取与所述目标任务对应的待处理文件,包括:
调用所述异步任务微服务根据接收到的所述任务信息,确定与所述任务标识对应的文件标识,向所述文件微服务发送包括所述文件标识的文件获取请求,以接收所述文件微服务根据所述文件获取请求,从所述第一数据库中获取的与所述文件标识对应的所述待处理文件;
其中,所述任务信息中包括所述目标任务的任务标识以及所述目标任务对应的待处理文件的文件标识。
5.根据权利要求4所述的跟踪方法,其特征在于,所述微服务架构中还包括接入微服务;
所述响应于来自所述发送端的文件上传请求,之前还包括:
调用所述接入微服务接收来自所述发送端的所述文件上传请求,将所述文件上传请求发送至所述文件微服务;
所述向所述发送端返回所述待处理文件对应的文件标识,具体为:
调用所述文件微服务将所述文件标识发送至所述接入微服务,调用所述接入微服务将所述文件标识返回至所述发送端。
6.根据权利要求5所述的跟踪方法,其特征在于,所述微服务架构还包括领域服务模块;
响应于来自所述发送端的任务执行请求,之前还包括:
调用所述接入微服务接收来自所述发送端的任务执行请求,将所述任务执行请求发送至领域微服务,调用所述领域微服务将所述任务执行请求发送至所述任务状态微服务;
所述将所述目标任务以及任务信息发送至所述异步任务微服务,具体为:
调用所述任务状态微服务将所述目标任务的任务标识发送至所述领域微服务,调用所述领域微服务将所述任务标识发送至所述异步任务微服务;
调用所述异步任务微服务根据接收到所述任务标识,向所述任务状态微服务发送任务信息获取请求,调用所述任务状态微服务根据所述任务信息获取请求,向所述异步任务微服务返回所述任务标识对应的目标任务以及任务信息。
7.根据权利要求4所述的跟踪方法,其特征在于,所述任务标识包括哈希值:所述哈希值是根据预设的哈希算法,结合所述目标任务的类型以及任务创建时间生成的;
更新所述目标任务的处理进度,包括:
根据所述目标任务的任务标识中的哈希值,从第二数据库中的至少一个预设的存储区域中确定目标存储区域;
在所述目标存储区域中,确定键为所述任务标识的键值对,并将所述键值对的值更新为所述目标任务的执行进度信息。
8.根据权利要求7所述的跟踪方法,其特征在于,所述响应于来自发送端的针对所述目标任务的任务进度查询请求,将所述目标任务的当前处理进度信息发送至所述发送端,包括:
根据所述任务进度查询请求中包括的所述任务标识,确定存储所述任务标识对应目标任务的处理进度信息的目标存储区域;
从所述目标存储区域中获取以所述任务标识为键的键值对,将所述键值对的值作为当前处理进度信息发送至所述发送端。
9.根据权利要求5所述的跟踪方法,其特征在于,所述将所述文件上传请求发送至所述文件微服务包括:
调用所述接入微服务对所述文件上传请求中的待处理文件进行安全验证,在安全验证通过后,将所述待处理文件发送至所述文件微服务。
10.根据权利要求6所述的跟踪方法,其特征在于,调用所述领域微服务将所述任务执行请求发送至所述任务状态微服务,包括:
建立所述任务状态微服务与所述领域微服务间的长连接,调用所述领域微服务通过所述长连接将所述任务执行请求发送至所述任务状态微服务。
11.一种基于微服务架构的任务执行进度的跟踪装置,其特征在于,所述微服务架构中包括任务状态微服务和异步任务微服务,所述跟踪装置包括:
异步任务服务模块,用于调用所述异步任务微服务获取与目标任务对应的待处理文件,所述待处理文件包括至少两个待处理数据,根据所述目标任务对所述至少两个待处理数据进行大数据计算处理,每得到至少一个待处理数据的处理结果,则向任务状态微服务通知所述目标任务的执行情况;
任务状态服务模块,用于调用所述任务状态微服务响应于接收到所述目标任务的执行情况的通知,更新所述目标任务的处理进度,并且响应于来自发送端的针对所述目标任务的任务进度查询请求,将所述目标任务的当前处理进度信息发送至所述发送端。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任一项所述基于微服务架构的任务执行进度的跟踪方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至10中任意一项所述基于微服务架构的任务执行进度的跟踪方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110540755.0A CN115374175A (zh) | 2021-05-18 | 2021-05-18 | 基于微服务架构的任务执行进度的跟踪方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110540755.0A CN115374175A (zh) | 2021-05-18 | 2021-05-18 | 基于微服务架构的任务执行进度的跟踪方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115374175A true CN115374175A (zh) | 2022-11-22 |
Family
ID=84059324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110540755.0A Pending CN115374175A (zh) | 2021-05-18 | 2021-05-18 | 基于微服务架构的任务执行进度的跟踪方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374175A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126646A (zh) * | 2023-04-13 | 2023-05-16 | 紫金诚征信有限公司 | 一种确定批量数据执行进度的方法及装置 |
CN116431367A (zh) * | 2023-06-12 | 2023-07-14 | 中国航空结算有限责任公司 | 一种修改票证信息的方法、***及计算机可读存储介质 |
CN117827979A (zh) * | 2024-03-05 | 2024-04-05 | 数翊科技(北京)有限公司武汉分公司 | 一种数据批量导入方法、装置、电子设备及存储介质 |
-
2021
- 2021-05-18 CN CN202110540755.0A patent/CN115374175A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126646A (zh) * | 2023-04-13 | 2023-05-16 | 紫金诚征信有限公司 | 一种确定批量数据执行进度的方法及装置 |
CN116431367A (zh) * | 2023-06-12 | 2023-07-14 | 中国航空结算有限责任公司 | 一种修改票证信息的方法、***及计算机可读存储介质 |
CN116431367B (zh) * | 2023-06-12 | 2023-09-08 | 中国航空结算有限责任公司 | 一种修改票证信息的方法、***及计算机可读存储介质 |
CN117827979A (zh) * | 2024-03-05 | 2024-04-05 | 数翊科技(北京)有限公司武汉分公司 | 一种数据批量导入方法、装置、电子设备及存储介质 |
CN117827979B (zh) * | 2024-03-05 | 2024-05-17 | 数翊科技(北京)有限公司武汉分公司 | 一种数据批量导入方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698738B1 (en) | Implementing a blockchain-based workflow | |
CN115374175A (zh) | 基于微服务架构的任务执行进度的跟踪方法及装置 | |
US20200409940A1 (en) | Implementing a blockchain-based workflow | |
CN113157648A (zh) | 基于区块链的分布式数据存储方法、装置、节点及*** | |
CN110601896B (zh) | 一种基于区块链节点的数据处理方法以及设备 | |
CN112100460A (zh) | 基于区块链的网络页面存证方法、装置、介质及电子设备 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN112202554B (zh) | 基于信息的属性生成密钥的信息处理方法、装置及设备 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN112613877A (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN110955724A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN113706313A (zh) | 基于区块链的融资方法、***及计算机可读存储介质 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN113034281A (zh) | 基于区块链的业务数据处理方法、相关***及节点 | |
CN113011907A (zh) | 数据处理方法、装置、存储介质及设备 | |
CN110096511B (zh) | 基于私有链的数据一致性验证方法、装置、设备及介质 | |
CN112991064B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113129002A (zh) | 一种数据处理方法以及设备 | |
CN116596551A (zh) | 基于区块链的供应链产品溯源方法、存储介质和电子设备 | |
CN116233253A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN111008251B (zh) | 一种数据处理方法以及设备 | |
CN115842866A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
KR102095046B1 (ko) | 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법 |
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 |