CN117873691B - 数据处理方法、装置、设备及可读存储介质 - Google Patents

数据处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN117873691B
CN117873691B CN202410282876.3A CN202410282876A CN117873691B CN 117873691 B CN117873691 B CN 117873691B CN 202410282876 A CN202410282876 A CN 202410282876A CN 117873691 B CN117873691 B CN 117873691B
Authority
CN
China
Prior art keywords
task
target
database
processing
business
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410282876.3A
Other languages
English (en)
Other versions
CN117873691A (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 CN202410282876.3A priority Critical patent/CN117873691B/zh
Publication of CN117873691A publication Critical patent/CN117873691A/zh
Application granted granted Critical
Publication of CN117873691B publication Critical patent/CN117873691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据处理方法、装置、设备及可读存储介质,该方法包括:获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。采用本申请,可以对多个数据库中的目标任务均匀进行业务处理,提高了数据库的处理效率和利用率。

Description

数据处理方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
随着计算机的快速发展,软件技术的不断提高,办公自动化***、审批***、财务***等各种业务***通常集成在业务流程中,由于业务流程中各个用户所申请的业务任务分别存储在不同数据源中,现有技术需要对同一数据源中的业务任务按照存储顺序遍历进行业务处理,在面对海量业务任务时,会导致靠后数据源中的业务任务处理不及时,靠后数据源中的业务任务长时长没有进行任务拉取,容易造成数据源中的业务任务堆积,也就导致靠后的数据源难以继续提供存储和拉取的读写功能,靠后数据源的处理效率和利用率低。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及可读存储介质,可以对多个数据库中的目标任务均匀进行业务处理,提高了数据库的处理效率和利用率。
本申请实施例一方面提供了一种数据处理方法,包括:
若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;P和M为正整数,总数量P与第一访问分区参数互质,业务流程中的业务任务包括M个目标任务;
基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
其中,基于总数量P生成第一访问分区参数,包括:
基于总数量P随机生成访问种子数,获取访问种子数与总数量P的公约数;
若访问种子数与总数量P的公约数中最大的公约数为1,则将访问种子数确定为第一访问分区参数;
若访问种子数与总数量P的公约数中最大的公约数不为1,则对访问种子数进行自增运算,直至得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
其中,基于第一访问分区参数在业务流程的数据库中确定目标数据库,包括:
对第一访问分区参数与总数量P进行取余运算,得到取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。
其中,已处理任务包括第一已处理任务和第二已处理任务;基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务,包括:
获取目标数据库中目标任务的处理优先级,将具有最高处理优先级的目标任务确定为待处理任务,在目标数据库中对拉取到待处理任务进行业务处理;
若对待处理任务完成业务处理,则将完成业务处理的待处理任务确定为第一已处理任务;
若待处理任务进行业务处理失败,则对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。
其中,获取目标数据库中目标任务的处理优先级,包括:
获取目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数;
基于优先级分类模型对目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征,基于优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为目标任务的处理优先级。
其中,还包括:
获取第一已处理任务在目标环节的处理结果,将第一已处理任务以及处理结果,放回至第一已处理任务在业务流程中所对应的数据库。
其中,对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务,包括:
将业务处理失败的待处理任务,确定为待排队任务,获取待排队任务的重试次数,将重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长;
将具有目标重试时长的待排队任务,确定为已进入重试流程的第二已处理任务;若重试候选时长小于或者等于重试时长阈值,则目标重试时长是指重试候选时长;若重试候选时长大于重试时长阈值,则目标重试时长是指重试时长阈值;
方法还包括:
将第二已处理任务,放回至第二已处理任务在业务流程中所对应的数据库,在第二已处理任务的等待时长达到目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,对所恢复的目标任务进行重试处理。
其中,还包括:
获取流程创建请求,基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程;
通过流程引擎执行业务流程,获取业务流程中位于启动环节的N个业务任务,基于哈希函数将N个业务任务分区至P个数据库,将流转至业务流程中目标环节的业务任务,确定为目标任务;N为大于或等于M正整数,P为小于或等于N的正整数。
其中,基于哈希函数将N个业务任务分区至P个数据库,包括:
获取N个业务任务分别对应的任务标识,对任务标识进行哈希函数处理,得到任务哈希值,基于任务哈希值与业务流程中的数据库的总数量P,生成N个业务任务分别对应的数据库索引,基于数据库索引将N个业务任务分区至P个数据库。
其中,还包括:
将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
其中,还包括:
通过搜索分析引擎获取目标任务在目标环节的停留时长,当停留时长大于或等于时长警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第一提示信息;
通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息。
本申请实施例一方面提供了一种数据处理装置,包括:
参数生成模块,用于若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;P和M为正整数,总数量P与第一访问分区参数互质,业务流程中的业务任务包括M个目标任务;
任务处理模块,用于基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
任务遍历模块,用于继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
在一种可能的实现方式中,参数生成模块用于基于总数量P生成第一访问分区参数时,具体用于执行以下操作:
基于总数量P随机生成访问种子数,获取访问种子数与总数量P的公约数;
若访问种子数与总数量P的公约数中最大的公约数为1,则将访问种子数确定为第一访问分区参数;
若访问种子数与总数量P的公约数中最大的公约数不为1,则对访问种子数进行自增运算,直至得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
在一种可能的实现方式中,任务处理模块用于基于第一访问分区参数在业务流程的数据库中确定目标数据库时,具体用于执行以下操作:
对第一访问分区参数与总数量P进行取余运算,得到取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。
在一种可能的实现方式中,已处理任务包括第一已处理任务和第二已处理任务,任务处理模块用于基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务时,具体用于执行以下操作:
获取目标数据库中目标任务的处理优先级,将具有最高处理优先级的目标任务确定为待处理任务,在目标数据库中对拉取到待处理任务进行业务处理;
若对待处理任务完成业务处理,则将完成业务处理的待处理任务确定为第一已处理任务;
若待处理任务进行业务处理失败,则对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。
在一种可能的实现方式中,任务处理模块用于获取目标数据库中目标任务的处理优先级时,具体用于执行以下操作:
获取目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数;
基于优先级分类模型对目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征,基于优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为目标任务的处理优先级。
在一种可能的实现方式中,任务处理模块还用于执行以下操作:
获取第一已处理任务在目标环节的处理结果,将第一已处理任务以及处理结果,放回至第一已处理任务在业务流程中所对应的数据库。
在一种可能的实现方式中,任务处理模块用于对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务时,具体用于执行以下操作:
将业务处理失败的待处理任务,确定为待排队任务,获取待排队任务的重试次数,将重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长;
将具有目标重试时长的待排队任务,确定为已进入重试流程的第二已处理任务;若重试候选时长小于或者等于重试时长阈值,则目标重试时长是指重试候选时长;若重试候选时长大于重试时长阈值,则目标重试时长是指重试时长阈值;
还用于执行以下操作:
将第二已处理任务,放回至第二已处理任务在业务流程中所对应的数据库,在第二已处理任务的等待时长达到目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,对所恢复的目标任务进行重试处理。
在一种可能的实现方式中,任务处理模块还用于执行以下操作:
获取流程创建请求,基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程;
通过流程引擎执行业务流程,获取业务流程中位于启动环节的N个业务任务,基于哈希函数将N个业务任务分区至P个数据库,将流转至业务流程中目标环节的业务任务,确定为目标任务;N为大于或等于M正整数,P为小于或等于N的正整数。
在一种可能的实现方式中,任务处理模块用于基于哈希函数将N个业务任务分区至P个数据库时,具体用于执行以下操作:
获取N个业务任务分别对应的任务标识,对任务标识进行哈希函数处理,得到任务哈希值,基于任务哈希值与业务流程中的数据库的总数量P,生成N个业务任务分别对应的数据库索引,基于数据库索引将N个业务任务分区至P个数据库。
在一种可能的实现方式中,任务处理模块还用于执行以下操作:
将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
在一种可能的实现方式中,任务处理模块还用于执行以下操作:
通过搜索分析引擎获取目标任务在目标环节的停留时长,当停留时长大于或等于时长警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第一提示信息;
通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息。
本申请实施例一方面提供了一种计算机设备,包括:处理器、存储器以及网络接口;
处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构示意图;
图2是本申请实施例提供的一种数据处理场景示意图一;
图3是本申请实施例提供的一种数据处理方法的流程示意图一;
图4是本申请实施例提供的一种数据处理方法的流程示意图二;
图5是本申请实施例提供的一种数据处理场景示意图二;
图6是本申请实施例提供的一种数据处理场景示意图三;
图7是本申请实施例提供的一种数据处理方法的流程示意图三;
图8是本申请实施例提供的一种数据处理方法的流程示意图四;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
智能交通***(Intelligent Traffic System,ITS)又称智能运输***(Intelligent Transportation System),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输***。或者;
智能车路协同***(Intelligent Vehicle Infrastructure CooperativeSystems,IVICS),简称车路协同***,是智能交通***(ITS)的一个发展方向。车路协同***是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通***。
本申请实施例可应用于地图领域,可以涉及智能交通***及智能车路协同***等相关技术,具体通过如下实施例进行说明。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。如图1所示,该网络架构可以包括业务服务器100以及终端设备200,其中,终端设备200可以与业务服务器100之间存在通信连接,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
应该理解,如图1所示的终端设备200可以安装有应用客户端,当该应用客户端运行于终端设备200中时,可以与上述图1所示的业务服务器100之间进行数据交互,使得业务服务器100可以接收来自于终端设备200的业务数据。其中,该应用客户端可以为地图应用、游戏应用、视频编辑应用、社交应用、即时通信应用、直播应用、短视频应用、视频应用、音乐应用、购物应用、小说应用、支付应用、浏览器等具有图像、视频等数据信息功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如即时通信客户端、社交客户端、视频客户端等)中的嵌入式子客户端,在此不做限定。
如图1所示,业务服务器100可以获取终端设备200的流程创建请求。业务服务器100可以基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程。
其中,流程定义信息可以包括业务流程所包含的各个流程环节、每个流程环节所需执行的处理以及流程环节的连接关系。业务流程引擎可以通过图形化的方式创建和管理业务流程,可以定义流程的各个流程环节、每个流程环节所需执行的处理和数据流等,并将它们组合成一个完整的业务流程。
业务服务器100可以通过流程引擎执行业务流程,将流转至业务流程中目标环节的业务任务,确定为目标任务。目标环节可以是需要执行业务处理的流程环节。例如在员工请假流程中,目标环节可以是需要领导对业务任务进行审批的环节。
若在业务流程中检测到流转至目标环节的M个目标任务,则业务服务器100可以获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。P和M为正整数。
可以理解,业务服务器100可以基于终端设备200的任务创建请求在业务流程中创建位于启动环节的N个业务任务,业务服务器100可以将N个业务任务分区至P个数据库进行存储。其中,业务流程中的N个业务任务包括M个目标任务,即流转至目标环节的业务任务可以被确定为目标任务。
业务服务器100可以基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务。其中,业务处理可以是需要处理方执行的人工处理,例如可以是处理方对业务任务进行审批,本申请实施例在此不做限制。
业务服务器100可以继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
可以理解的是,在本申请的具体实施方式中,涉及到的用户数据,当本申请以上以及以下实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
其中,若在本申请中需要收集对象(如用户等)数据,则在收集前、收集中,显示提示界面或者弹窗,该提示界面或者弹窗用于提示用户当前正在搜集某些数据,仅仅在获取到用户对该提示界面或者弹窗发出确认操作后,开始执行数据获取的相关的步骤,否则结束。而且,对于获取到的用户数据,会在合理合法的场景或用途等上进行使用。可选的,在一些需要使用用户数据但未得到用户授权的场景中,还可以向用户请求授权,在授权通过时,再使用用户数据。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
请参见图2,图2是本申请实施例提供的一种数据处理的场景示意图。如图2所示,为便于理解,以员工请假流程为例,假设有100名员工基于终端设备200同时在业务流程中发起请假,那么业务服务器100可以基于终端设备200所发送的请假请求生成100个请假任务,业务服务器100可以将100个请假任务通过哈希算法均匀的分布在8个数据库中。
在图2中,员工请假流程可以包括启动环节、业务节点1、条件网关、条件节点1、第一终点、条件节点2、拆分节点、子流程启动节点、条件节点3以及子流程终点。业务节点1可以是业务流程中需要获取流程数据的***环节,本申请实施例在此不做限制。条件节点1、条件节点2以及条件节点3可以是需要人工处理的流程环节。条件网关可以是对业务任务进行条件判断,从而将业务任务流转至不同的条件节点,例如可以是对业务任务的任务方(发起人)进行身份判断,将属于管理员身份所发起的业务任务流转至条件节点1,将不属于管理员身份所发起的业务任务流转至条件节点2。
例如某些请假任务流转到领导审批环节,领导审批环节可以是条件节点2,业务服务器100可以将流转到领导审批环节的请假任务确定为目标任务,创建线程来拉取目标任务进行业务处理。
业务服务器100可以基于总数量P生成第一访问分区参数(例如在上述员工请假流程中,总数量P可以是8),第一访问分区参数可以是与总数量P互质的正整数。例如第一访问分区参数可以是3,业务服务器100可以基于第一访问分区参数在业务流程的数据库中确定目标数据库,如可以直接将业务流程中数据库索引为第一访问分区参数的数据库确定为目标数据库,例如目标数据库中可以包括目标任务1、目标任务2、目标任务3。目标任务1的处理优先级大于目标任务2的处理优先级,目标任务2的处理优先级大于目标任务3的处理优先级。
业务服务器100可以在目标数据库中拉取具有最高处理优先级的目标任务1进行业务处理,调用领导审批的接口,将目标任务1推送至领导所对应的审批平台,在领导进行审批后进行回调,将领导审批后的目标任务1确定为已处理任务1。业务服务器100可以将已处理任务1以及已处理任务1所对应的处理结果(处理结果可以是领导对请假任务的“同意”或者“拒绝”)放回至业务流程中数据库索引为3(即第一访问分区参数)的数据库。
业务服务器100可以继续基于总数量P生成第二访问分区参数,第二访问分区参数可以是与总数量P互质的正整数。例如第二访问分区参数可以是7,业务服务器100可以基于第一访问分区参数与第二访问分区参数确定新的目标数据库,例如可以是计算第一访问分区参数与第二访问分区参数之和与总数量P的余数,得到余数2,业务服务器100可以将业务流程中数据库索引为2的数据库确定为新的目标数据库,新的目标数据库可以包括目标任务4、目标任务5、目标任务6。目标任务4的处理优先级大于目标任务5的处理优先级,目标任务5的处理优先级大于目标任务6的处理优先级。
业务服务器100可以在目标数据库中拉取具有最高处理优先级的目标任务4进行业务处理,将领导审批后的目标任务4确定为已处理任务4。业务服务器100可以将已处理任务4以及已处理任务4所对应的处理结果放回至业务流程中数据库索引为2的数据库。
可以理解,对于第一次拉取目标任务,业务服务器100可以生成第一访问分区参数,将数据库索引为第一访问分区参数的数据库,确定为目标数据库。对于拉取下一个目标任务时,业务服务器100可以生成第二访问分区参数(即新的访问分区参数),将数据库索引为取余访问数的数据库,确定为目标数据库。取余访问数,可以是第一访问分区参数与第二访问分区参数之和与总数量P的余数。即第一访问分区参数为上一次拉取目标任务所生成的访问分区参数,第二访问分区参数为本次拉取目标任务所生成的访问分区参数。例如在下一次拉取目标任务时,业务服务器100可以生成第三访问分区参数,基于第二访问分区参数与第三访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。以本申请实施例应用于地图领域为例,业务流程可以是地图管理流程,地图管理流程可以在地图开发时,对各个地区所上传的地图信息进行审核,规整,路线规划等。
在图2中,地图管理流程可以包括启动环节、业务节点1、条件网关、条件节点1、第一终点、条件节点2、拆分节点(可以用于创建业务流程中的子流程)、子流程启动节点、条件节点3以及子流程终点。业务节点1可以是用户发起地图任务(地图任务可以是在地图中创建新的地点、修改已有地点的位置信息、名称信息或图标信息等),本申请实施例在此不做限制。条件网关可以是对业务任务进行条件判断,从而将业务任务流转至不同的条件节点,例如可以是对地图任务的类型进行判断,例如在地图中创建新的地点可以是流转至条件节点1,修改已有地点的位置信息、名称信息或图标信息等可以是流转至条件节点2。条件节点1、条件节点2以及条件节点3可以是需要人工处理的流程环节,条件节点1可以是调用地图管理平台的接口,由地图管理方对新建的地点进行审核和规整。条件节点2可以是将地图任务推送至该地点所预设的管理人员(例如可以是该地点商户的经营者),由管理人员先进行审查,审查通过后再交由地图管理方对修改的地图信息进行审核和规整。
由此,可以定义清晰的地图管理流程,可以更好地组织和协调地图管理工作,从而提高地图管理的工作效率,确保所有相关人员都按照相同的步骤和流程进行工作,从而提高一致性,通过本申请实施例对多个数据库的均匀拉取,可以更好的让地图管理流程中的每个数据库具有相同的机会处理库存中的地图任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图一,该数据处理方法可以由计算机设备执行,计算机设备可以是如图1所示的业务服务器100。以下将以本数据处理方法由计算机设备执行为例进行说明。其中,该数据处理方法至少可以包括以下步骤S101-步骤S103:
步骤S101,若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;P和M为正整数,总数量P与第一访问分区参数互质,业务流程中的业务任务包括M个目标任务;
具体的,计算机设备中的业务流程引擎可以执行业务流程,在业务流程中可以包括N个位于业务流程启动环节的业务任务。其中,业务流程引擎可以通过图形化的方式创建和管理业务流程,可以定义流程的各个流程环节、每个流程环节所需执行的处理和数据流等,并将它们组合成一个完整的业务流程。例如可以是Flowable(工作流框架引擎),一个使用Java(一种面向对象的编程语言)编写的轻量级业务流程引擎。基于BPMN2.0(BusinessProcess Model and Notation,业务流程建模和标注)协议,实现对流程的创建、查询、流转、报结等操作的管理。
可以理解,计算机设备可以基于任务创建请求在业务流程中创建位于启动环节的N个业务任务,计算机设备可以将N个业务任务分区至P个数据库进行存储。其中,业务流程中的N个业务任务包括M个目标任务,即流转至目标环节的业务任务可以被确定为目标任务。
若在业务流程中检测到流转至目标环节的M个目标任务,例如在员工请假流程中,目标环节可以是需要领导对业务任务进行审批的环节。则计算机设备可以获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。其中,P和M为正整数。
步骤S102,基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
具体的,计算机设备可以基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。例如第一访问分区参数可以是3,计算机设备可以基于第一访问分区参数在业务流程的数据库中确定目标数据库,如可以直接将业务流程中数据库索引为第一访问分区参数的数据库确定为目标数据库,例如目标数据库中可以包括目标任务1、目标任务2、目标任务3。目标任务1的处理优先级大于目标任务2的处理优先级,目标任务2的处理优先级大于目标任务3的处理优先级。
计算机设备可以在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务。例如可以是在目标数据库中拉取具有最高处理优先级的目标任务1进行业务处理,将业务处理后的目标任务1确定为已处理任务1。
步骤S103,继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
具体的,计算机设备可以继续基于总数量P生成第二访问分区参数,第二访问分区参数可以是与总数量P互质的正整数。例如第二访问分区参数可以是7,计算机设备可以基于第一访问分区参数与第二访问分区参数确定新的目标数据库,例如可以是计算第一访问分区参数与第二访问分区参数之和与总数量P的余数,得到余数2,计算机设备可以将业务流程中数据库索引为2的数据库确定为新的目标数据库,新的目标数据库可以包括目标任务4、目标任务5、目标任务6。目标任务4的处理优先级大于目标任务5的处理优先级,目标任务5的处理优先级大于目标任务6的处理优先级。
计算机设备可以在目标数据库中拉取具有最高处理优先级的目标任务4进行业务处理,将业务处理后的目标任务4确定为已处理任务4。计算机设备可以将已处理任务4以及已处理任务4所对应的处理结果放回至业务流程中数据库索引为2的数据库。
可以理解,对于第一次拉取目标任务,计算机设备可以生成第一访问分区参数,将数据库索引为第一访问分区参数的数据库,确定为目标数据库。对于拉取下一个目标任务时,计算机设备可以生成第二访问分区参数(即新的访问分区参数),将数据库索引为取余访问数的数据库,确定为目标数据库。取余访问数,可以是第一访问分区参数与第二访问分区参数之和与总数量P的余数。即第一访问分区参数为上一次拉取目标任务所生成的访问分区参数,第二访问分区参数为本次拉取目标任务所生成的访问分区参数。例如在下一次拉取目标任务时,计算机设备可以生成第三访问分区参数,基于第二访问分区参数与第三访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
另一方面,本申请实施例通过上述方案,在面对海量业务任务时,无需使用Kafka(一种分布式消息队列***)作为消息队列来暂存靠后数据库所堆压的业务任务,可以减少***组件Kafka,降低***复杂度,不对Kafka的稳定性形成依赖。本申请实施例设计了一种业务任务的扩展交互方法,采用拉取和放回业务任务的模式,解决了使用Kafka做任务下发时分区无法及时准确扩容的问题,设置存储业务任务的任务池,支持多数据库均匀的拉取业务任务,改进优化了重试策略,为业务流程实现了扩展交互。
请参见图4,图4是本申请实施例提供的一种数据处理方法的流程示意图二,该数据处理方法可以由计算机设备执行,计算机设备可以是如图1所示的业务服务器100。以下将以本数据处理方法由计算机设备执行为例进行说明。其中,该数据处理方法至少可以包括以下步骤S201-步骤S206:
步骤S201,获取流程创建请求,基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程;通过流程引擎执行业务流程,获取业务流程中位于启动环节的N个业务任务,基于哈希函数将N个业务任务分区至P个数据库,将流转至业务流程中目标环节的业务任务,确定为目标任务;N为大于或等于M正整数,P为小于或等于N的正整数。
具体的,计算机设备可以获取流程创建请求。计算机设备可以基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程。其中,流程定义信息可以包括业务流程所包含的各个流程环节、每个流程环节所需执行的处理以及流程环节的连接关系。业务流程引擎可以通过图形化的方式创建和管理业务流程,可以定义流程的各个流程环节、每个流程环节所需执行的处理和数据流等,并将它们组合成一个完整的业务流程。例如可以是Flowable(工作流框架引擎),一个使用Java(一种面向对象的编程语言)编写的轻量级业务流程引擎。基于BPMN2.0协议,实现对流程的创建、查询、流转、报结等操作的管理。
计算机设备可以通过流程引擎执行业务流程,可以包括搭建Flowable相关服务,搭建ElasticSearch(搜索分析引擎)、Apollo(分布式配置引擎)服务、检测服务。进行服务的部署。其中,ElasticSearch是一个基于Apache Lucene(全文搜索引擎)的分布式可扩展的实时搜索和分析引擎,它可以扩展到上百台服务器,处理PB(PetaByte,一种存储单位)级别的结构化或非结构化数据。Apollo是一种分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
可以理解,在接入本方案提供给的Python(一种面向对象的动态类型的编程语言)SDK(Software Development Kit,软件开发工具包)后,可以调用Python SDK中的API(Application Programming Interface,应用程序编程接口)接口发起业务流程,用户(也可以称之为任务方)可以通过Python SDK调用Flowable的服务接口来创建业务任务,在业务任务创建成功后,会进行业务流程中各个流程环节的流转,流转相关的数据会记录到MySQL数据库,同时同步到ElasticSearch上。
其中,Python SDK是一种软件开发工具包,它提供了用于开发Python软件的工具和库。具体来说,它包含了连接到某个服务或使用某项技术的Python模块、类和函数,这些模块、类和函数可以帮助你在Python程序中使用该服务或技术。这样你就可以使用Python编写软件来与该服务或技术交互,而无需直接使用它们的原生API。
计算机设备可以获取业务流程中位于启动环节的N个业务任务,基于哈希函数将N个业务任务分区至P个数据库,计算机设备将业务任务分区至数据库方式可以是:获取N个业务任务分别对应的任务标识,对任务标识进行哈希函数处理,得到任务哈希值,基于任务哈希值与业务流程中的数据库的总数量P,生成N个业务任务分别对应的数据库索引,基于数据库索引将N个业务任务分区至P个数据库。
具体的,计算机设备可以获取N个业务任务分别对应的任务标识,任务标识可以是业务任务在创建时所分配的序号。计算机设备可以对任务标识进行哈希函数处理,得到任务哈希值,计算机设备可以基于任务哈希值与业务流程中的数据库的总数量P,生成N个业务任务分别对应的数据库索引,可以是通过哈希均匀分布(Hashing UniformDistribution)生成数据库索引。哈希均匀分布中每个输入值被映射到输出值的概率是相等的。可以通过哈希函数将任务标识映射到一个固定大小的输出空间中,并保证每个输出值的概率相等。其中,输出值可以代表所存储的数据库对应的数据库索引,从而实现对业务任务的均匀分布。计算机设备可以基于数据库索引将N个业务任务分区至P个数据库,通过P个数据库对业务任务进行分区存储。计算机设备可以将流转至业务流程中目标环节的业务任务,确定为目标任务。
其中,目标环节可以是需要执行业务处理的流程环节,业务处理可以是需要处理方执行的人工处理,例如可以是处理方对业务任务进行审批,本申请实施例在此不做限制。
步骤S202,若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P;
具体的,若在业务流程中检测到流转至目标环节的M个目标任务,则计算机设备可以获取用于存储业务流程中的业务任务的数据库的总数量P,P和M为正整数。总数量P可以是计算机设备用于存储N个业务任务的数据库的总数。
步骤S203,基于总数量P随机生成访问种子数,获取访问种子数与总数量P的公约数;若访问种子数与总数量P的公约数中最大的公约数为1,则将访问种子数确定为第一访问分区参数;若访问种子数与总数量P的公约数中最大的公约数不为1,则对访问种子数进行自增运算,直至得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
具体的,计算机设备可以基于总数量P随机生成访问种子数,即在数据库索引范围内随机生成访问种子数,例如数据库索引范围可以是[0,P-1]。计算机设备可以获取访问种子数与总数量P的公约数。
若访问种子数与总数量P的公约数中最大的公约数为1,则计算机设备可以将访问种子数确定为第一访问分区参数;若访问种子数与总数量P的公约数中最大的公约数不为1,则计算机设备对访问种子数进行自增运算,直至得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
对于判断访问种子数与总数量P是否互质,计算机设备可以调用函数co_prime(a,b),例如函数co_prime(a,b)可以是“def co_prime(a, b): t = 0;while b>0;t = a%b; a= b;b = t;return a == 1。计算机设备可以将a传入访问种子数,将b传入总数量P。将a与b之间的余数赋值给t,将a赋值为b,将b赋值为t,循环计算,直至a的值为1,即得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
步骤S204,对第一访问分区参数与总数量P进行取余运算,得到取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。
具体的,计算机设备可以对第一访问分区参数与总数量P进行取余运算,即将第一访问分区参数与总数量P的余数,确定为取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。若目标数据库中不存在目标任务,则计算设备可以重新计算新的第一访问分区参数,直至得到的目标数据库中存储有目标任务。
步骤S205,获取目标数据库中目标任务的处理优先级,将具有最高处理优先级的目标任务确定为待处理任务,在目标数据库中对拉取到待处理任务进行业务处理;若对待处理任务完成业务处理,则将完成业务处理的待处理任务确定为第一已处理任务;若待处理任务进行业务处理失败,则对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。
具体的,计算机设备可以获取目标数据库中目标任务的处理优先级,处理优先级的确定过程可以是:获取目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数;基于优先级分类模型对目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征,基于优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为目标任务的处理优先级。
具体的,业务任务可以包括所对应的处理紧急等级标识、用户等级标识以及重试次数。处理紧急等级标识可以是用户(也可以称之为任务方)在提交业务任务时所选择的处理紧急等级,用户等级标识可以是用户身份所对应的标识,例如可以是管理员身份、非管理员身份等。重试次数可以是业务任务在某个流程环节超时未进行业务处理,而导致业务任务被放回重试的次数。
计算机设备可以获取目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数,基于优先级分类模型对目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征。计算机设备可以基于优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为目标任务的处理优先级。
其中,优先级分类模型可以是对业务任务所对应的多个特征变量(如处理紧急等级标识、用户等级标识以及重试次数等)使用机器学习算法进行训练和优化得到,优先级分类模型可以对业务任务进行预测,得到优先级特征的概率分布,将具有最大概率的处理优先级确定为输出结果。
计算机设备可以将具有最高处理优先级的目标任务确定为待处理任务,在目标数据库中对拉取到待处理任务进行业务处理。业务任务的拉取可以是从数据库中获取业务任务,然后进行业务处理。数据库也可以称之为数据源或任务池。业务处理可以是需要处理方执行的人工处理,例如可以是处理方对业务任务进行审批,本申请实施例在此不做限制。例如在员工请假流程中,完成业务处理可以是领导对请假任务的“同意”或者“拒绝”。待处理任务进行业务处理失败可以是领导超时未对请假任务出具审批意见,或者在业务任务的拉取中出现了异常报错,例如接口调用错误、数据获取失败等。
可以理解,已处理任务可以包括第一已处理任务和第二已处理任务。若对待处理任务完成业务处理,则计算机设备将完成业务处理的待处理任务确定为第一已处理任务;若待处理任务进行业务处理失败,则计算机设备可以对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。
计算机设备可以获取第一已处理任务在目标环节的处理结果(例如在员工请假流程中,完成业务处理可以是领导对请假任务的“同意”或者“拒绝”,以及处理意见等),计算机设备可以将第一已处理任务以及处理结果,放回至第一已处理任务在业务流程中所对应的数据库。业务任务的放回可以是将拉取的业务任务放回至业务任务所对应的数据库。通过放回业务任务可以存储业务任务在流程环节的处理信息,例如可以是业务处理的处理结果,从而便于业务任务流转至目标环节的下一环节。
再请一并参加图5,图5是本申请实施里提供的一种数据处理场景示意图二。业务流程(Flowable流程)中包括多个流程环节,如图5所示,当业务任务到达某个需要进行业务处理的流程环节(需要进行业务处理的流程环节也可以称之为目标环节)时,在业务任务流转至目标环节时,业务任务在目标环节的生命周期状态可以被确定为待认领状态,计算机设备可以基于上述步骤S203至步骤S205生成访问分区参数,对目标任务进行拉取,在目标数据库中按照事先设置的处理优先级开始认领任务,得到生命周期状态处于已认领的待处理任务,认领后如果一段时长没有对待处理任务进行任何操作,例如待处理任务在认领状态的停留时长大于或者等于所设定的时长警告阈值,则待处理任务会被认定为超时,即待处理任务进行业务处理失败,超时后计算机设备可以对待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。若待处理任务发生接口调用错误、数据获取失败等,则可以将待处理任务的生命周期状态设置为异常,对异常的待处理任务也进行重试处理。
可选的,计算机设备可以通过搜索分析引擎获取目标任务(待处理任务)在目标环节的停留时长,当所述停留时长大于或等于时长警告阈值时,则计算机设备可以向目标任务所对应的任务方以及目标环节所对应的处理方返回第一提示信息。
计算机设备进行重试处理的过程可以是:将业务处理失败的待处理任务,确定为待排队任务,获取待排队任务的重试次数,将重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长;将具有目标重试时长的待排队任务,确定为已进入重试流程的第二已处理任务;若重试候选时长小于或者等于重试时长阈值,则目标重试时长是指重试候选时长;若重试候选时长大于重试时长阈值,则目标重试时长是指重试时长阈值;将第二已处理任务,放回至第二已处理任务在业务流程中所对应的数据库,在第二已处理任务的等待时长达到目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,对所恢复的目标任务进行重试处理。
具体的,计算机设备可以将业务处理失败的待处理任务,确定为待排队任务,获取该待排队任务的重试次数(第一次进行重试处理的待排队任务的重试次数为0),将重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长。其中,单位重试时长是人工设置的时长数值,例如可以是10秒。若重试候选时长小于或者等于重试时长阈值(预设值,例如可以是3600秒),则目标重试时长是指重试候选时长;若重试候选时长大于重试时长阈值,则目标重试时长是指重试时长阈值。
可以理解,本申请实施例通过重试次数的平方数值与单位重试时长之间的乘积确定目标重试时长,采用了退火算法优化了目标重试时长的间隔,目标重试时长间隔伴随着重试次数的增加而增加,且最多不超过重试时长阈值,避免业务任务长时长高频率地进行重试(Flowable原生的重试策略只支持间隔相同时长的重试),防止其占用大量资源,更符合业务任务进行重试处理的需求,在海量业务任务的情况下,还可以减轻服务器的压力,提高了本方案的可行性。
计算机设备可以将第二已处理任务,放回至第二已处理任务在业务流程中所对应的数据库,在第二已处理任务的等待时长达到目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,即将第二已处理任务的生命周期确定为待领取,对所恢复的目标任务进行重试处理。
计算机设备可以生成访问分区参数,对目标任务进行拉取,在目标数据库中按照事先设置的处理优先级拉取到上述待领取的第二已处理任务,则将该第二已处理任务的生命周期状态设置为已认领的待处理任务,进行业务处理。
例如,在业务流程的目标环节中包括目标任务1(存储于数据库1,处理优先级为1),目标任务2(存储于数据库1,处理优先级为2),目标任务3(存储于数据库2,处理优先级为1)。则计算机设备可以生成第一访问分区参数,对第一访问分区参数与总数量P进行取余运算,得到取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。在目标数据库中对目标任务进行拉取,若取余访问数所对应的数据库索引为1,计算机设备可以将数据库1中具有最高处理优先级的目标任务2进行业务处理,假如针对目标任务2的业务处理失败,则计算机设备可以对目标任务2进行重试处理,继续生成第二访问分区参数,将第一访问分区参数与第二访问分区参数之和与总数量P进行取余运算,得到新得取余访问数,将业务流程中数据库索引为新的取余访问数的数据库,确定为新的目标数据库。在新的目标数据库中对目标任务进行拉取,若新的取余访问数所对应的数据库索引为2,计算机设备可以对数据库2中的目标任务3进行业务处理,在目标任务3的业务处理完成后,计算机设备可以继续生成第三访问分区参数,将第二访问分区参数与第三访问分区参数之和与总数量P进行取余运算,得到新的取余访问数,将业务流程中数据库索引为新的取余访问数的数据库,确定为新的目标数据库。在新的目标数据库中对目标任务进行拉取,若新的取余访问数所对应的数据库索引为1,计算机设备可以对数据库2中的目标任务进行业务处理,若此时目标任务2进行重试处理的等待时长达到目标重试时长,则计算机设备可以将具有最高处理优先级的目标任务2再一次进行业务处理,在目标任务2的业务处理完成后,计算机设备可以继续生成第四访问分区参数,得到新的取余访问数,若新的取余访问数所对应的数据库索引为2,数据库2中此时没有需要业务处理的目标任务,则计算机设备可以继续生成第五访问分区参数,得到新的取余访问数,若新的取余访问数所对应的数据库索引为1,计算机设备可以拉取数据库1中的目标任务1进行业务处理,从而对目标环节中所有目标任务均完成所需的业务处理。
步骤S206,继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
具体的,计算机设备可以继续基于总数量P生成第二访问分区参数,第二访问分区参数可以是与总数量P互质的正整数。例如第二访问分区参数可以是7,计算机设备可以基于第一访问分区参数与第二访问分区参数确定新的目标数据库,例如可以是计算第一访问分区参数与第二访问分区参数之和与总数量P的余数,得到余数2,计算机设备可以将业务流程中数据库索引为2的数据库确定为新的目标数据库,新的目标数据库可以包括目标任务4、目标任务5、目标任务6。目标任务4的处理优先级大于目标任务5的处理优先级,目标任务5的处理优先级大于目标任务6的处理优先级。
计算机设备可以在目标数据库中拉取具有最高处理优先级的目标任务4进行业务处理,将业务处理后的目标任务4确定为已处理任务4。计算机设备可以将已处理任务4以及已处理任务4所对应的处理结果放回至业务流程中数据库索引为2的数据库。
可以理解,对于第一次拉取目标任务,计算机设备可以生成第一访问分区参数,将数据库索引为第一访问分区参数的数据库,确定为目标数据库。对于拉取下一个目标任务时,计算机设备可以生成第二访问分区参数(即新的访问分区参数),将数据库索引为取余访问数的数据库,确定为目标数据库。取余访问数,可以是第一访问分区参数与第二访问分区参数之和与总数量P的余数。即第一访问分区参数为上一次拉取目标任务所生成的访问分区参数,第二访问分区参数为本次拉取目标任务所生成的访问分区参数。例如在下一次拉取目标任务时,计算机设备可以生成第三访问分区参数,基于第二访问分区参数与第三访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
再请一并参加图6,图6是本申请实施例提供的一种数据处理场景示意图三。如图6所示,对于业务流程引擎(Flowable)中的业务任务,业务任务的流转信息会记录到数据库中,为便于理解,以数据库为MySQL为例,MySQL中的日志采集工具Canal会可以采集Binlog(业务任务在MySQL中所产生的日志信息),将Binlog进行数据同步到ElasticSearch上。业务方可以借助引入的Python SDK(软件开发工具包),调用API接口按处理优先级,多数据源的均匀拉取目标任务进行处理,同时拉取ElasticSearch上的任务流转数据。
检测器可以对搜索分析引擎的数据进行检测,当发现业务任务满足告警条件时,比如在某个环节停留超过设定的阈值,即计算机设备可以通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息,第二提示信息可以用于对任务方以及处理方提示业务任务的停留时长。检测器可以拉取ElasticSearch上的数据,进行业务任务的检测,当发现异常,如业务任务在某环节停留时长过长,就会向目标任务所对应的任务方以及目标环节的处理方发出第二提示信息,第二提示信息的格式例如:“blocked: 996 - stepName # run-check: 实例ID @ STEP:业务ID stay:停留时长@任务方和处理方”。
当检测器检测任务量激增的时候,可以调用服务扩容接口,通过服务容器外部组件,对数据库实现自动扩缩容。计算机设备可以将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,任务统计信息可以记录有业务任务在各个流程环节的流程时长,以及业务流程中各个环节所停留的业务任务的数量。任务统计信息可以是ElasticSearch对Flowable中的日志数据、以及MySQL中业务任务的任务流转信息进行搜索分析得到的。若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
另一方面,本申请实施例通过上述方案,在面对海量业务任务时,无需使用Kafka(一种分布式消息队列***)作为消息队列来暂存靠后数据库所堆压的业务任务,可以减少***组件Kafka,降低***复杂度,不对Kafka的稳定性形成依赖。对于Kafka消费问题(如rebalance,即在Kafka中,rebalance是指消费者组内的消费者重新分配分区的过程。当消费者组内的消费者数量发生变化时,需要重新分配分区,以保证每个消费者能够公平地处理数据),本申请实施例通过搜索分析引擎,可以实现对数据库的动态扩容,在消费者组内的消费者数量发生变化时,无需重新分配分区,而且通过生成互质数对多数据库中业务任务实现均匀拉取,可以保证每个消费者能够公平地处理数据。
本申请实施例在解决超大突发流量下的消费能力上限问题时,可以通过搜索分析引擎进行扩容服务解决,比Kafka配置升级速度更快更稳定。由于业务方是通过本申请实施例所提供的Python SDK与Flowable进行交互,所以可对业务无侵入性,通过Python SDK在数据库中拉取业务任务,再将任务统计信息同步至搜索分析引擎,可以降低业务复杂性的同时大幅增加可获取指标数量,通过搜索分析引擎对任务统计信息中业务任务在各个流程环节的流程时长,以及业务流程中各个环节所停留的业务任务的数量进行实时分析,得到***的压力情况和业务任务的流转情况等,从而可以将搜索分析引擎作为业务流程的旁路器,在Flowable中通过ElasticSearch的参与,从而可以实现快速旁路识别并告警异常情况,返回提示信息。本申请实施例设计了一种业务任务的扩展交互方法,采用拉取和放回业务任务的模式,解决了使用Kafka做任务下发时分区无法及时准确扩容的问题,设置存储业务任务的任务池,支持多数据库均匀的拉取业务任务,改进优化了重试策略,为业务流程实现了扩展交互。
在压力测试中。创建任务测试:测试环境创建任务速度(8核,8进程,每进程20线程总计160并发)可以达到1W/min,等效吞吐为60W/h。正式环境按照20倍性能增益,极限性能可以达到1000W/h以上,满足业务需求。处理环节测试:测试环境下正常情况下的消费速率(40线程并发,叠加注入30%的异常重试流程)约为1.3W/min,等效吞吐80W/h。正式环境按20倍增益能达到1500W/h的全流程的流转需求,满足业务需求。实现了业务流程的高并发和高可用,可以解决超大突发流量下的消费问题,支持业务任务按处理优先级下发,支持业务任务的分数据库的拉取,可以对多个数据库中的目标任务均匀进行业务处理,提高了业务流程的处理效率。
请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图三,该数据处理方法可以由计算机设备执行,计算机设备可以是如图1所示的业务服务器100。以下将以本数据处理方法由计算机设备执行为例进行说明。其中,该数据处理方法至少可以包括以下步骤S301-步骤S305:
步骤S301,搭建业务流程引擎的相关服务;
具体的,计算机设备可以通过流程引擎执行业务流程,可以包括搭建Flowable相关服务,搭建ElasticSearch(搜索分析引擎)、Apollo(分布式配置引擎)服务、检测服务。进行服务的部署。
步骤S302,配置流程图相关信息,配置任务环境,预设信息;
具体的,业务方在Apollo配置相关信息,例如Python SDK服务需要配置Flowable的访问地址、分库数量(总数量P)、任务优先级(处理优先级)、排序(业务任务的任务标识)等信息。检测服务需要配置流程图的各个需要检测的环节信息,比如时长警告阈值、单位重试时长、重试次数、目标环节的处理方等,可以以JSON(JavaScript Object Notation,是一种轻量级的数据交换格式,可以用于表示和传输结构化数据)格式配置。业务方接入PythonSDK并部署Python检测服务,加载Apollo配置。
步骤S303,业务任务流转达到目标环节,拉取目标任务进行业务处理;
具体的,若在业务流程中检测到流转至目标环节的M个目标任务,则计算机设备可以获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。其中,P和M为正整数。
计算机设备可以基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。例如第一访问分区参数可以是3,计算机设备可以基于第一访问分区参数在业务流程的数据库中确定目标数据库,将业务流程中数据库索引为3的数据库确定为目标数据库,例如目标数据库中可以包括目标任务1、目标任务2、目标任务3。目标任务1的处理优先级大于目标任务2的处理优先级,目标任务2的处理优先级大于目标任务3的处理优先级。
计算机设备可以在目标数据库中拉取具有最高处理优先级的目标任务1进行业务处理,将业务处理后的目标任务1确定为已处理任务1。
计算机设备可以继续基于总数量P生成第二访问分区参数,第二访问分区参数可以是与总数量P互质的正整数。例如第二访问分区参数可以是7,计算机设备可以基于第一访问分区参数与第二访问分区参数确定新的目标数据库,例如可以是计算第一访问分区参数与第二访问分区参数之和与总数量P的余数,得到余数2,计算机设备可以将业务流程中数据库索引为2的数据库确定为新的目标数据库,新的目标数据库可以包括目标任务4、目标任务5、目标任务6。目标任务4的处理优先级大于目标任务5的处理优先级,目标任务5的处理优先级大于目标任务6的处理优先级。
计算机设备可以在目标数据库中拉取具有最高处理优先级的目标任务4进行业务处理,将业务处理后的目标任务4确定为已处理任务4。计算机设备可以将已处理任务4以及已处理任务4所对应的处理结果放回至业务流程中数据库索引为2的数据库。
可以理解,对于第一次拉取目标任务,计算机设备可以生成第一访问分区参数,将数据库索引为第一访问分区参数的数据库,确定为目标数据库。对于拉取下一个目标任务时,计算机设备可以生成第二访问分区参数(即新的访问分区参数),将数据库索引为取余访问数的数据库,确定为目标数据库。取余访问数,可以是第一访问分区参数与第二访问分区参数之和与总数量P的余数。即第一访问分区参数为上一次拉取目标任务所生成的访问分区参数,第二访问分区参数为本次拉取目标任务所生成的访问分区参数。例如在下一次拉取目标任务时,计算机设备可以生成第三访问分区参数,基于第二访问分区参数与第三访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
步骤S304,当目标任务在目标环节的停留时长大于或者等于时长警告阈值,或者目标任务出现异常的时,对目标任务进行重试处理;
具体的,对于业务流程引擎(Flowable)中的业务任务,业务任务的流转信息会记录到数据库中,为便于理解,以数据库为MySQL为例,MySQL中的日志采集工具Canal会可以采集Binlog(业务任务在MySQL中所产生的日志信息),将Binlog进行数据同步到ElasticSearch上。业务方可以借助引入的Python SDK(软件开发工具包),调用API接口按处理优先级,多数据源的均匀拉取目标任务进行处理,同时拉取ElasticSearch上的任务流转数据。
检测器可以对搜索分析引擎的数据进行检测,当发现业务任务满足告警条件时,比如在某个环节停留超过设定的阈值,即计算机设备可以通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息。检测器可以拉取ElasticSearch上的数据,进行业务任务的检测,当发现异常,如业务任务在某环节停留时长过长,就会向向目标任务所对应的任务方以及目标环节的处理方发出第二提示信息,第二提示信息的格式例如:“blocked: 996 - stepName # run-check: 实例ID @ STEP:业务ID stay:停留时长@任务方和处理方”。
步骤S305,实时检测业务流程中或者结束归档的业务任务。
具体的,计算机设备可以检测业务流程中或者结束归档的业务任务,当检测器检测任务量激增的时候,可以调用服务扩容接口,通过服务容易外部组件,对数据库实现自动扩缩容。计算机设备可以将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
另一方面,本申请实施例通过上述方案,在面对海量业务任务时,无需使用Kafka(一种分布式消息队列***)作为消息队列来暂存靠后数据库所堆压的业务任务,可以减少***组件Kafka,降低***复杂度,不对Kafka的稳定性形成依赖。对于Kafka消费问题(如rebalance,即在Kafka中,rebalance是指消费者组内的消费者重新分配分区的过程。当消费者组内的消费者数量发生变化时,需要重新分配分区,以保证每个消费者能够公平地处理数据),本申请实施例通过搜索分析引擎,可以实现对数据库的动态扩容,在消费者组内的消费者数量发生变化时,无需重新分配分区,而且通过生成互质数对多数据库中业务任务实现均匀拉取,可以保证每个消费者能够公平地处理数据。
本申请实施例在解决超大突发流量下的消费能力上限问题时,可以通过搜索分析引擎进行扩容服务解决,比Kafka配置升级速度更快更稳定。由于业务方是通过本申请实施例所提供的Python SDK与Flowable进行交互,所以可对业务无侵入性,通过Python SDK在数据库中拉取业务任务,再将任务统计信息同步至搜索分析引擎,可以降低业务复杂性的同时大幅增加可获取指标数量,通过搜索分析引擎对任务统计信息中业务任务在各个流程环节的流程时长,以及业务流程中各个环节所停留的业务任务的数量进行实时分析,得到***的压力情况和业务任务的流转情况等,从而可以将搜索分析引擎作为业务流程的旁路器,在Flowable中通过ElasticSearch的参与,从而可以实现快速旁路识别并告警异常情况,返回提示信息。本申请实施例设计了一种业务任务的扩展交互方法,采用拉取和放回业务任务的模式,解决了使用Kafka做任务下发时分区无法及时准确扩容的问题,设置存储业务任务的任务池,支持多数据库均匀的拉取业务任务,改进优化了重试策略,为业务流程实现了扩展交互。
请参见图8,图8是本申请实施例提供的一种数据处理方法的流程示意图四,该数据处理方法可以由计算机设备执行,计算机设备可以是如图1所示的业务服务器100。以下将以本数据处理方法由计算机设备执行为例进行说明。其中,该数据处理方法至少可以包括以下步骤S401-步骤S412:
步骤S401,发起请求;
步骤S402,创建任务;
步骤S403,相关校验;
步骤S404,记录任务;
具体的,在接入本方案提供给的PythonSDK后,可以调用Python SDK中的API接口发起请求,用户(也可以称之为任务方)可以通过Python SDK会调用Flowable的服务接口来创建业务任务,在完成相关校验之后即可完成业务任务的创建。其中,相关校验可以是对业务任务的任务方的身份、请求参数是否异常进行验证,本申请实施例在此不做限制。
步骤S405,返回记录结果;
步骤S406,返回创建结果;
步骤S407,返回请求结果;
步骤S408,任务流转,状态变更;
步骤S409,数据同步;
具体的,创建成功的业务任务可以存储至数据库中,数据库可以返回业务任务的记录结果至业务流程引擎,记录结果可以用于指示业务任务是否在数据库中成功存储。在获取到记录结果之后,业务流程引擎可以返回创建结果至业务方,创建结果可以用于指示在业务流程的启动环节成功创建业务任务。业务方可以返回请求结果至用户,请求结果可以用于指示用户通过Python SDK会调用Flowable的服务接口来创建业务任务成功。在业务任务创建成功后,业务任务会进行业务流程中各个流程环节的流转,流转相关的数据会记录到MySQL数据库,同时同步到ElasticSearch上。
步骤S410,拉取任务数据;
具体的,若在业务流程中检测到流转至目标环节的M个目标任务,则计算机设备可以获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数,第一访问分区参数可以是与总数量P互质的正整数。P和M为正整数。
可以理解,计算机设备可以基于任务创建请求在业务流程中创建位于启动环节的N个业务任务,计算机设备可以将N个业务任务分区至P个数据库进行存储。其中,业务流程中的N个业务任务包括M个目标任务,即流转至目标环节的业务任务可以被确定为目标任务。
计算机设备可以基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务。其中,业务处理可以是需要处理方执行的人工处理,例如可以是处理方对业务任务进行审批,本申请实施例在此不做限制。
计算机设备可以继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
步骤S411,任务检测;
具体的,对于业务流程引擎(Flowable)中的业务任务,业务任务的流转信息会记录到数据库中,为便于理解,以数据库为MySQL为例,MySQL中的日志采集工具Canal会可以采集Binlog(业务任务在MySQL中所产生的日志信息),将Binlog进行数据同步到ElasticSearch上。业务方可以借助引入的Python SDK(软件开发工具包),调用API接口按处理优先级,多数据源的均匀拉取目标任务进行处理,同时拉取ElasticSearch上的任务流转数据。
计算机设备可以检测业务流程中或者结束归档的业务任务,当检测器检测任务量激增的时候,可以调用服务扩容接口,通过服务容易外部组件,对数据库实现自动扩缩容。计算机设备可以将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
步骤S412,发出提醒。
具体的,检测器可以对搜索分析引擎的数据进行检测,当发现业务任务满足告警条件时,比如在某个环节停留超过设定的阈值,即计算机设备可以通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息。检测器可以拉取ElasticSearch上的数据,进行业务任务的检测,当发现异常,如业务任务在某环节停留时长过长,就会向向目标任务所对应的任务方以及目标环节的处理方发出第二提示信息,第二提示信息的格式例如:“blocked: 996 - stepName # run-check: 实例ID @STEP:业务ID stay:停留时长@任务方和处理方”。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
另一方面,本申请实施例通过上述方案,在面对海量业务任务时,无需使用Kafka(一种分布式消息队列***)作为消息队列来暂存靠后数据库所堆压的业务任务,可以减少***组件Kafka,降低***复杂度,不对Kafka的稳定性形成依赖。对于Kafka消费问题(如rebalance,即在Kafka中,rebalance是指消费者组内的消费者重新分配分区的过程。当消费者组内的消费者数量发生变化时,需要重新分配分区,以保证每个消费者能够公平地处理数据),本申请实施例通过搜索分析引擎,可以实现对数据库的动态扩容,在消费者组内的消费者数量发生变化时,无需重新分配分区,而且通过生成互质数对多数据库中业务任务实现均匀拉取,可以保证每个消费者能够公平地处理数据。
本申请实施例在解决超大突发流量下的消费能力上限问题时,可以通过搜索分析引擎进行扩容服务解决,比Kafka配置升级速度更快更稳定。由于业务方是通过本申请实施例所提供的Python SDK与Flowable进行交互,所以可对业务无侵入性,通过Python SDK在数据库中拉取业务任务,再将任务统计信息同步至搜索分析引擎,可以降低业务复杂性的同时大幅增加可获取指标数量,通过搜索分析引擎对任务统计信息中业务任务在各个流程环节的流程时长,以及业务流程中各个环节所停留的业务任务的数量进行实时分析,得到***的压力情况和业务任务的流转情况等,从而可以将搜索分析引擎作为业务流程的旁路器,在Flowable中通过ElasticSearch的参与,从而可以实现快速旁路识别并告警异常情况,返回提示信息。本申请实施例设计了一种业务任务的扩展交互方法,采用拉取和放回业务任务的模式,解决了使用Kafka做任务下发时分区无法及时准确扩容的问题,设置存储业务任务的任务池,支持多数据库均匀的拉取业务任务,改进优化了重试策略,为业务流程实现了扩展交互。
请参见图9,图9是本申请实施例提供的一种数据处理装置的结构示意图一。如图9所示,该数据处理装置1包括参数生成模块910,任务处理模块920和任务遍历模块930。
参数生成模块910,用于若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;P和M为正整数,总数量P与第一访问分区参数互质,业务流程中的业务任务包括M个目标任务;
任务处理模块920,用于基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
任务遍历模块930,用于继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
在一种可能的实现方式中,参数生成模块910用于基于总数量P生成第一访问分区参数时,具体用于执行以下操作:
基于总数量P随机生成访问种子数,获取访问种子数与总数量P的公约数;
若访问种子数与总数量P的公约数中最大的公约数为1,则将访问种子数确定为第一访问分区参数;
若访问种子数与总数量P的公约数中最大的公约数不为1,则对访问种子数进行自增运算,直至得到的新的访问种子数与总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数。
在一种可能的实现方式中,任务处理模块920用于基于第一访问分区参数在业务流程的数据库中确定目标数据库时,具体用于执行以下操作:
对第一访问分区参数与总数量P进行取余运算,得到取余访问数,将业务流程中数据库索引为取余访问数的数据库,确定为目标数据库。
在一种可能的实现方式中,已处理任务包括第一已处理任务和第二已处理任务,任务处理模块920用于基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务时,具体用于执行以下操作:
获取目标数据库中目标任务的处理优先级,将具有最高处理优先级的目标任务确定为待处理任务,在目标数据库中对拉取到待处理任务进行业务处理;
若对待处理任务完成业务处理,则将完成业务处理的待处理任务确定为第一已处理任务;
若待处理任务进行业务处理失败,则对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务。
在一种可能的实现方式中,任务处理模块920用于获取目标数据库中目标任务的处理优先级时,具体用于执行以下操作:
获取目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数;
基于优先级分类模型对目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征,基于优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为目标任务的处理优先级。
在一种可能的实现方式中,任务处理模块920还用于执行以下操作:
获取第一已处理任务在目标环节的处理结果,将第一已处理任务以及处理结果,放回至第一已处理任务在业务流程中所对应的数据库。
在一种可能的实现方式中,任务处理模块920用于对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为第二已处理任务时,具体用于执行以下操作:
将业务处理失败的待处理任务,确定为待排队任务,获取待排队任务的重试次数,将重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长;
将具有目标重试时长的待排队任务,确定为已进入重试流程的第二已处理任务;若重试候选时长小于或者等于重试时长阈值,则目标重试时长是指重试候选时长;若重试候选时长大于重试时长阈值,则目标重试时长是指重试时长阈值;
还用于执行以下操作:
将第二已处理任务,放回至第二已处理任务在业务流程中所对应的数据库,在第二已处理任务的等待时长达到目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,对所恢复的目标任务进行重试处理。
在一种可能的实现方式中,任务处理模块920还用于执行以下操作:
获取流程创建请求,基于流程创建请求中的流程定义信息在业务流程引擎中创建业务流程;
通过流程引擎执行业务流程,获取业务流程中位于启动环节的N个业务任务,基于哈希函数将N个业务任务分区至P个数据库,将流转至业务流程中目标环节的业务任务,确定为目标任务;N为大于或等于M正整数,P为小于或等于N的正整数。
在一种可能的实现方式中,任务处理模块920用于基于哈希函数将N个业务任务分区至P个数据库时,具体用于执行以下操作:
获取N个业务任务分别对应的任务标识,对任务标识进行哈希函数处理,得到任务哈希值,基于任务哈希值与业务流程中的数据库的总数量P,生成N个业务任务分别对应的数据库索引,基于数据库索引将N个业务任务分区至P个数据库。
在一种可能的实现方式中,任务处理模块920还用于执行以下操作:
将业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若任务统计信中业务任务的数量超出数据库的存储阈值,则通过搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
在一种可能的实现方式中,任务处理模块920还用于执行以下操作:
通过搜索分析引擎获取目标任务在目标环节的停留时长,当停留时长大于或等于时长警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第一提示信息;
通过搜索分析引擎获取业务流程停留目标环节中的目标任务的停留数量,当停留数量大于或等于数量警告阈值时,则向目标任务所对应的任务方以及目标环节的处理方返回第二提示信息。
本申请实施例通过检测流转至目标环节的M个目标任务,基于业务流程中的业务任务的数据库的总数量P,生成与总数量P互质的第一访问分区参数。通过第一访问分区参数在业务流程的数据库中确定目标数据库,按照目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;继续通过总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。本申请实施例通过与数据库的总数量P互质的第一访问分区参数来确定访问的目标数据库,对目标数据库中具有最高处理优先级的目标任务进行业务处理,再生成第二访问分区参数,通过第一访问分区参数与第二访问分区参数确定下一访问的目标数据库,从而实现对多个数据库中的目标任务进行均匀访问,可以避免存储顺序靠后的数据库中的业务任务堆积,通过本申请实施例对多个数据库的均匀拉取,可以更好的让每个数据库具有相同的机会处理库存中的业务任务,从而保证每个数据库可以更好的提供存储和拉取的读写功能,提高了数据库的处理效率和利用率。
另一方面,本申请实施例通过上述方案,在面对海量业务任务时,无需使用Kafka(一种分布式消息队列***)作为消息队列来暂存靠后数据库所堆压的业务任务,可以减少***组件Kafka,降低***复杂度,不对Kafka的稳定性形成依赖。对于Kafka消费问题(如rebalance,即在Kafka中,rebalance是指消费者组内的消费者重新分配分区的过程。当消费者组内的消费者数量发生变化时,需要重新分配分区,以保证每个消费者能够公平地处理数据),本申请实施例通过搜索分析引擎,可以实现对数据库的动态扩容,在消费者组内的消费者数量发生变化时,无需重新分配分区,而且通过生成互质数对多数据库中业务任务实现均匀拉取,可以保证每个消费者能够公平地处理数据。
本申请实施例在解决超大突发流量下的消费能力上限问题时,可以通过搜索分析引擎进行扩容服务解决,比Kafka配置升级速度更快更稳定。由于业务方是通过本申请实施例所提供的Python SDK与Flowable进行交互,所以可对业务无侵入性,通过Python SDK在数据库中拉取业务任务,再将任务统计信息同步至搜索分析引擎,可以降低业务复杂性的同时大幅增加可获取指标数量,通过搜索分析引擎对任务统计信息中业务任务在各个流程环节的流程时长,以及业务流程中各个环节所停留的业务任务的数量进行实时分析,得到***的压力情况和业务任务的流转情况等,从而可以将搜索分析引擎作为业务流程的旁路器,在Flowable中通过ElasticSearch的参与,从而可以实现快速旁路识别并告警异常情况,返回提示信息。本申请实施例设计了一种业务任务的扩展交互方法,采用拉取和放回业务任务的模式,解决了使用Kafka做任务下发时分区无法及时准确扩容的问题,设置存储业务任务的任务池,支持多数据库均匀的拉取业务任务,改进优化了重试策略,为业务流程实现了扩展交互。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
请参见图10,图10是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在如图10所示的计算机设备1000中,网络接口1004可提供网络通讯网元;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储业务流程中的业务任务的数据库的总数量P,基于总数量P生成第一访问分区参数;P和M为正整数,总数量P与第一访问分区参数互质,业务流程中的业务任务包括M个目标任务;
基于第一访问分区参数在业务流程的数据库中确定目标数据库,基于目标数据库中目标任务的处理优先级,在目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
继续基于总数量P生成第二访问分区参数,基于第一访问分区参数与第二访问分区参数确定新的目标数据库,在新的目标数据库中对下一个目标任务进行业务处理,直至M个目标任务均转换为已处理任务。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3、图4、图7和图8任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有计算机程序,当上述处理器执行上述计算机程序时,能够执行前文图3、图4、图7和图8任一个所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经显示或者将要显示的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行前文图3、图4、图7和图8任一个所对应实施例提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照网元一般性地描述了各示例的组成及步骤。这些网元究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的网元,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (13)

1.一种数据处理方法,其特征在于,包括:
若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储所述业务流程中的业务任务的数据库的总数量P,基于所述总数量P随机生成访问种子数,获取所述访问种子数与所述总数量P的公约数,若所述访问种子数与所述总数量P的公约数中最大的公约数不为1,则对所述访问种子数进行自增运算,直至得到的新的访问种子数与所述总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数;P和M为正整数,所述总数量P与所述第一访问分区参数互质,所述业务流程中的业务任务包括所述M个目标任务;
对所述第一访问分区参数与所述总数量P进行取余运算,得到取余访问数,将所述业务流程中数据库索引为所述取余访问数的数据库,确定为目标数据库,基于所述目标数据库中目标任务的处理优先级,在所述目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
继续基于所述总数量P生成第二访问分区参数,基于所述第一访问分区参数与所述第二访问分区参数确定新的目标数据库,在所述新的目标数据库中对下一个目标任务进行业务处理,直至所述M个目标任务均转换为已处理任务。
2.根据权利要求1所述的方法,其特征在于,所述已处理任务包括第一已处理任务和第二已处理任务;所述基于所述目标数据库中目标任务的处理优先级,在所述目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务,包括:
获取所述目标数据库中目标任务的处理优先级,将具有最高处理优先级的目标任务确定为待处理任务,在所述目标数据库中对拉取到所述待处理任务进行业务处理;
若对所述待处理任务完成业务处理,则将完成业务处理的待处理任务确定为所述第一已处理任务;
若所述待处理任务进行业务处理失败,则对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为所述第二已处理任务。
3.根据权利要求2所述的方法,其特征在于,所述获取所述目标数据库中目标任务的处理优先级,包括:
获取所述目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数;
基于优先级分类模型对所述目标任务所对应的处理紧急等级标识、用户等级标识以及重试次数进行特征提取,得到优先级特征,基于所述优先级特征生成针对多个处理优先级的处理概率,将处理概率最大的处理优先级确定为所述目标任务的处理优先级。
4.根据权利要求2所述的方法,其特征在于,还包括:
获取所述第一已处理任务在目标环节的处理结果,将所述第一已处理任务以及所述处理结果,放回至所述第一已处理任务在所述业务流程中所对应的数据库。
5.根据权利要求2所述的方法,其特征在于,所述对业务处理失败的待处理任务进行重试处理,将进入重试流程的待处理任务确定为所述第二已处理任务,包括:
将业务处理失败的待处理任务,确定为待排队任务,获取所述待排队任务的重试次数,将所述重试次数的平方数值与单位重试时长之间的乘积,确定为重试候选时长;
将具有目标重试时长的待排队任务,确定为已进入重试流程的第二已处理任务;若所述重试候选时长小于或者等于重试时长阈值,则所述目标重试时长是指所述重试候选时长;若所述重试候选时长大于所述重试时长阈值,则所述目标重试时长是指所述重试时长阈值;
所述方法还包括:
将所述第二已处理任务,放回至所述第二已处理任务在所述业务流程中所对应的数据库,在所述第二已处理任务的等待时长达到所述目标重试时长时,将数据库中的第二已处理任务重新恢复为流转至目标环节的目标任务,对所恢复的目标任务进行重试处理。
6.根据权利要求1所述的方法,其特征在于,还包括:
获取流程创建请求,基于所述流程创建请求中的流程定义信息在业务流程引擎中创建业务流程;
通过所述流程引擎执行所述业务流程,获取所述业务流程中位于启动环节的N个业务任务,基于哈希函数将所述N个业务任务分区至P个数据库,将流转至所述业务流程中目标环节的业务任务,确定为目标任务;N为大于或等于M正整数,P为小于或等于N的正整数。
7.根据权利要求6所述的方法,其特征在于,所述基于哈希函数将所述N个业务任务分区至P个数据库,包括:
获取所述N个业务任务分别对应的任务标识,对任务标识进行哈希函数处理,得到任务哈希值,基于所述任务哈希值与所述业务流程中的数据库的总数量P,生成所述N个业务任务分别对应的数据库索引,基于所述数据库索引将所述N个业务任务分区至P个数据库。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述业务流程在流程引擎中的任务统计信息同步至搜索分析引擎,若所述任务统计信中业务任务的数量超出所述数据库的存储阈值,则通过所述搜索分析引擎调用扩容组件对超出存储阈值的数据库进行扩容。
9.根据权利要求8所述的方法,其特征在于,还包括:
通过所述搜索分析引擎获取所述目标任务在所述目标环节的停留时长,当所述停留时长大于或等于时长警告阈值时,则向所述目标任务所对应的任务方以及所述目标环节的处理方返回第一提示信息;
通过所述搜索分析引擎获取所述业务流程停留目标环节中的目标任务的停留数量,当所述停留数量大于或等于数量警告阈值时,则向所述目标任务所对应的任务方以及所述目标环节的处理方返回第二提示信息。
10.一种数据处理装置,其特征在于,包括:
参数生成模块,用于若在业务流程中检测到流转至目标环节的M个目标任务,则获取用于存储所述业务流程中的业务任务的数据库的总数量P,基于所述总数量P随机生成访问种子数,获取所述访问种子数与所述总数量P的公约数,若所述访问种子数与所述总数量P的公约数中最大的公约数不为1,则对所述访问种子数进行自增运算,直至得到的新的访问种子数与所述总数量P的公约数中最大的公约数为1,将新的访问种子数确定为第一访问分区参数;P和M为正整数,所述总数量P与所述第一访问分区参数互质,所述业务流程中的业务任务包括所述M个目标任务;
任务处理模块,用于对所述第一访问分区参数与所述总数量P进行取余运算,得到取余访问数,将所述业务流程中数据库索引为所述取余访问数的数据库,确定为目标数据库,基于所述目标数据库中目标任务的处理优先级,在所述目标数据库中对拉取到的具有最高处理优先级的目标任务进行业务处理,得到已处理任务;
任务遍历模块,用于继续基于所述总数量P生成第二访问分区参数,基于所述第一访问分区参数与所述第二访问分区参数确定新的目标数据库,在所述新的目标数据库中对下一个目标任务进行业务处理,直至所述M个目标任务均转换为已处理任务。
11.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-9任一项所述的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,且适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-9任一项所述的方法。
CN202410282876.3A 2024-03-13 2024-03-13 数据处理方法、装置、设备及可读存储介质 Active CN117873691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410282876.3A CN117873691B (zh) 2024-03-13 2024-03-13 数据处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410282876.3A CN117873691B (zh) 2024-03-13 2024-03-13 数据处理方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117873691A CN117873691A (zh) 2024-04-12
CN117873691B true CN117873691B (zh) 2024-07-02

Family

ID=90585096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410282876.3A Active CN117873691B (zh) 2024-03-13 2024-03-13 数据处理方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117873691B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668951A (zh) * 2019-10-16 2021-04-16 北京京东乾石科技有限公司 一种任务处理方法、装置、服务器及存储介质
CN113986830A (zh) * 2021-11-11 2022-01-28 西安交通大学 一种面向分布式ct的云端数据管理和任务调度方法及***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494894B2 (en) * 2008-09-19 2013-07-23 Strategyn Holdings, Llc Universal customer based information and ontology platform for business information and innovation management
US20220374329A1 (en) * 2016-03-29 2022-11-24 Dell Products L.P. Search and recommendation engine allowing recommendation-aware placement of data assets to minimize latency
CN110895487B (zh) * 2018-09-12 2023-03-10 北京奇虎科技有限公司 分布式任务调度***
CN113792077B (zh) * 2021-09-17 2023-06-06 易保网络技术(上海)有限公司 一种数据处理方法、程序产品、可读介质和电子设备
CN115454589A (zh) * 2022-07-29 2022-12-09 天翼云科技有限公司 一种任务调度方法、装置及Kubernetes调度器
CN116048817B (zh) * 2023-03-29 2023-06-27 腾讯科技(深圳)有限公司 数据处理控制方法、装置、计算机设备和存储介质
CN116708412A (zh) * 2023-06-26 2023-09-05 阿波罗智联(北京)科技有限公司 一种数据上传方法、装置、电子设备和存储介质
CN117112222A (zh) * 2023-09-06 2023-11-24 北京翼辉信息技术有限公司 一种请求处理方法、装置、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668951A (zh) * 2019-10-16 2021-04-16 北京京东乾石科技有限公司 一种任务处理方法、装置、服务器及存储介质
CN113986830A (zh) * 2021-11-11 2022-01-28 西安交通大学 一种面向分布式ct的云端数据管理和任务调度方法及***

Also Published As

Publication number Publication date
CN117873691A (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
CN111752799A (zh) 一种业务链路跟踪方法、装置、设备及储存介质
CN111625510A (zh) 一种基于云映射的多源数据共享***及方法
CN111399764B (zh) 数据存储方法、读取方法、装置、设备及存储介质
CN108170832B (zh) 一种面向工业大数据的异构数据库的监控***及监控方法
CN112597014A (zh) 基于数据驱动的自动化测试方法、装置、介质及电子设备
CN112799782B (zh) 模型生成***、方法、电子设备及存储介质
CN103678591B (zh) 自动执行多业务单据统计处理的装置和方法
CN110706148B (zh) 人脸图像处理方法、装置、设备和存储介质
CN115146000A (zh) 一种数据库数据同步方法、装置、电子设备及存储介质
CN110633318A (zh) 一种数据提取的处理方法、装置、设备和存储介质
CN117873691B (zh) 数据处理方法、装置、设备及可读存储介质
US11995587B2 (en) Method and device for managing project by using data merging
CN115883392A (zh) 算力网络的数据感知方法、装置、电子设备及存储介质
CN115114275A (zh) 一种数据采集方法、设备及介质
CN115719147A (zh) 输电线路巡检数据处理方法、装置、平台
CN115563160A (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
CN114860453A (zh) 场景引擎的任务执行方法、装置、电子设备及存储介质
CN114371884A (zh) Flink计算任务的处理方法、装置、设备和存储介质
CN112560213A (zh) 基于模型***工程和超网络理论的体系建模方法及***
CN112667393A (zh) 分布式任务计算调度框架搭建的方法、装置及计算机设备
CN111008078A (zh) 数据的批量处理方法、装置、设备及计算机存储介质
CN113268503B (zh) 信息聚合方法、存储介质、计算机设备
EP4109364B1 (en) Method and device for managing project by using data pointer
CN115249197A (zh) 电网运行风险智能分析管理方法、***、存储介质及终端
CN116126819A (zh) 一种***日志处理方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant