任务执行方法及装置制造方法及图纸

技术编号:24409212 阅读:53 留言:0更新日期:2020-06-06 08:26
本发明专利技术实施例提供一种任务执行方法及装置。所述方法包括:获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务;异步执行所述待执行任务,通过异步执行属于同一流程的待执行任务,而不必每次执行待执行任务时,轮询数据库获取同一流程的所有任务,提升工作流引擎的业务处理能力,满足订单办理性能提升要求。本发明专利技术实施例通过异步处理机制提升订单处理能力,而不是通过简单的硬件资源堆叠或横向多服务器扩容,解决了现有技术中,Activiti流程引擎的工作执行器性能不足的问题。

Task execution method and device

【技术实现步骤摘要】
任务执行方法及装置
本专利技术实施例涉及移动通信
,尤其涉及一种任务执行方法及装置。
技术介绍
随着移动通信技术的迅速发展,以智能手机为首的移动终端已成为人们生活中各方面不可或缺的工具,用户也趋向于通过手机在线办理各项运营商相关的各项业务。运营商通过其业务办理系统为用户提供业务办理功能,而工作流引擎作为业务办理系统的核心,主要提供就业务订单的排队、优先级、条件审核等各类规则配置功能。目前,主流的工作流引擎包括Activiti、jBPM4、jBPM5等。与jBPM4、jBPM5相比,Activiti具有更多良好的特性,比如Activiti具有协作工具组件,像建模器—ActivitiModeler;管理及监控组件—Activitiprobe);此外,Activiti拥有更简洁健壮的接口、拥有更友好的用户体验、支持启动引擎后随时热部署、拥有更友好易用的Eclipse编辑插件和在线插件、依赖更少的jar包等。因此,业务受理系统通常采用Activiti作为工作流程引擎。目前,Activiti流程引擎中的工作执行器,处理业务订单性能约为3000单/小时,但随着业务线上受理日益常态化,以及周期性促销活动优惠力度的变化,在营销活动期内,业务订单可达每天10万单以上;而若业务受理系统性能不足,业务办理效率会降低,导致客户感知下降;为了提高业务受理系统性能,可通过堆设更多硬件来解决,比如通过增加服务器,双机甚至更多的机器部署流程引擎进行办理,实现平行扩容外,而堆设更多硬件并不能保证性能的足够提高,不能保证业务办理能力与日益增长的线上移动业务量相匹配。此外,除了Activiti流程引擎的工作执行器性能不足的问题之外,Activiti流程引擎还存在订单存在重复办理的问题。具体地,若流程节点睡眠时间过长,导致流程定时任务监控认为该节点办理超时,会启动重试机制,最大重试5次,而此时实际节点还在办理,等待睡眠完成后会再处理,因此会导致处理重复。而业务受理系统通信不具有办理回退能力,因此会出现一定的订单办理重复率。
技术实现思路
本专利技术实施例提供一种任务执行方法及装置,用以解决现有技术中,Activiti流程引擎的工作执行器性能不足的问题。一方面,本专利技术实施例提供一种任务执行方法,所述方法包括:获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务;异步执行所述待执行任务。一方面,本专利技术实施例提供一种任务执行装置,所述装置包括:获取模块,用于获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务。执行模块,用于异步执行所述待执行任务。另一方面,本专利技术实施例还提供了一种电子设备,包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行方法中的步骤。再一方面,本专利技术实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任务执行方法中的步骤。本专利技术实施例提供的任务执行方法及装置,获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务时,异步执行所述待执行任务,即分别以独立的线程,执行所述待执行任务,通过异步执行属于同一流程的待执行任务,而不必每次执行待执行任务时,轮询数据库获取同一流程的所有任务,提升工作流引擎的业务处理能力,满足订单办理性能提升要求。本专利技术实施例通过异步处理机制提升订单处理能力,而不是通过简单的硬件资源堆叠或横向多服务器扩容,解决了现有技术中,Activiti流程引擎的工作执行器性能不足的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的任务执行方法的流程示意图之一;图2为本专利技术实施例的示例的场景示意图;图3为本专利技术实施例提供的任务执行方法的流程示意图之二;图4为本专利技术实施例提供的任务执行装置的结构示意图;图5为本专利技术实施例提供的电子设备的结构示意图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本专利技术的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本专利技术的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。应理解,说明书通篇中提到的“实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本专利技术的至少一个实施例中。因此,在整个说明书各处出现的“实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。在本专利技术的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本专利技术实施例的实施过程构成任何限定。在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。图1示出了本专利技术实施例提供的一种任务执行方法的流程示意图。如图1所示,本专利技术实施例提供的任务执行方法,应用于工作流引擎,所述方法具体包括以下步骤:步骤101,获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务。其中,线程是程序执行流的最小单元,线程是程序进程中的一个实体,是被系统独立调度和分派的基本单位,可与同属一个进程的其它线程共享进程所拥有的全部资源。线程池是一种多线程处理形式,处理过程中将待执行任务添加到队列,然后在创建线程后,自动启动这些任务。工作流引擎的线程池中包括至少两个属于同一流程的待执行任务时,当待执行任务的数据量庞大时,由于业务受理系统性能不足,业务办理效率会降低,因此,在检测到线程池中属于同一流程的待执行任务的数量包括至少两个时,执行异步处理流程。步骤102,异步执行所述待执行任务。其中,异步执行所述待执行任务即分别以独立的线程,执行所述待执行任务;具体地,作为示例,参见图2,工作流引擎可配置有一异步执行器,用于执行线程池中的待执行任务。启用后,工作流引擎将使用异步作业实体调用异步执行程序,线程池将异步执行作业。参见图2,异步执行器则直接执行异步作业,分别以独立的线程,执行属于同一流程的待执行任务,比如分别以独立的线程,执行任务1-任务3,每个独立线程的任务完成之后,该线程结束。如果异步执行作业是独占作业,则异步执行器将首先锁定进程实例执行,并且如果成功执行该作业并再次解锁进程实例执行。本专利技术本文档来自技高网
...

【技术保护点】
1.一种任务执行方法,应用于工作流引擎,其特征在于,所述方法包括:/n获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务;/n异步执行所述待执行任务。/n

【技术特征摘要】
1.一种任务执行方法,应用于工作流引擎,其特征在于,所述方法包括:
获取所述工作流引擎的线程池中的至少两个属于同一流程的待执行任务;
异步执行所述待执行任务。


2.根据权利要求1所述的方法,其特征在于,所述异步执行所述待执行任务的步骤,包括:
分别以独立的线程,执行所述待执行任务。


3.根据权利要求1所述的方法,其特征在于,所述异步执行所述待执行任务的步骤之前,所述方法还包括:
关闭所述工作流引擎的线程执行器,并配置所述工作流引擎的执行参数。


4.根据权利要求3所述的方法,其特征在于,所述执行参数包括:所述线程池中保持活动的最小线程数、最大线程数,用于执行作业的线程的时间,用于放置执行作业的队列的大小,单次查询的定时器作业的数量和/或单次查询提取异步作业的数量。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监控所述工作流引擎的执行流程,包括:
监控所述待执行任务的执行状态;和/或创建并维持用于记载所述执行状态的日志。


6.根据权利要求5所述的方法,其特征在于,所述异步执行所述待执行任务的步骤,包括...

【专利技术属性】
技术研发人员:欧建强梁健乐李成奇周小乐杨志勇林佳烨
申请(专利权)人:中国移动通信集团广东有限公司中国移动通信集团有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1