同步任务的处理方法及系统与流程

文档序号:15931335发布日期:2018-11-14 01:40阅读:376来源:国知局

本发明涉及软件开发过程中的任务处理领域,具体涉及一种同步任务的处理方法及系统。

背景技术

软件开发过程中通常进行同步任务操作和异步任务操作,同步任务操作的含义为:等待任务a完成后再开始执行任务b,异步任务操作的含义为:同时开始执行任务a和b。

传统实现同步任务操作的方法和对应的缺陷为:

(1)通过任务定时器周期性的监听任务a的执行状态,监听到任务a执行完成后,将任务a的完成结果通知至任务b,任务b收到完成结果后开始执行。

方法(1)开启任务定时器周期性的监听任务a的执行状态时,会占用大量的系统资源;与此同时,任务定时器周期性会强行耦合任务a和b(将任务a的完成结果通知至任务b等),进而提高软件的耦合度,不仅不利于同步任务的扩展,而且任务a和b耦合兼容后产生的高负荷,会极大的影响系统性能。

(2)通过全局任务变量来维系状态:任务a和b同时开启,任务a开始执行,任务b处于休眠状态;任务a完成后将全局任务变量设置为true,任务b轮询监听全局任务变量,当监听到全局任务变量为true时开始执行任务。

方法(2)中任务b需要开启进程来监听全局任务变量,进而占用系统资源;与此同时,由于全局任务变量属于全局性质,因此任何地方均可对全局任务变量进行赋值操作,进而无法保证全局任务变量的安全,容易引起程序执行逻辑的紊乱;进一步,任务a和b之间通过全局任务变量来进行耦合,依旧属于强耦合关系,不利于同步任务的扩展。

与此同时,与任务a相比(上级任务),方法(1)中的任务定时器和方法(2)中的全局任务变量,均属于下级通过轮询的方式来监听上级任务的完成情况,上级任务完成后,下级从监听至发送给任务b(上级任务)会占用一定的时间,进而会导致任务b完成后,任务b没有立即执行,即出现延迟的情况,无法保证同步任务的质量。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:如何在占用系统资源较少的情况下,保证耦合度较低的同步任务的质量。本发明的执行结果发送和接收接口占用的系统资源较小,而且通过任务执行结果发送和接收接口相耦合同步任务的耦合度较低,不仅便于同步任务的扩展,而且不会影响系统的性能。

为达到以上目的,本发明提供的同步任务的处理方法,包括以下步骤:

s1:定义需要等待其他任务完成后再执行的任务为下级任务,所述其他任务为上级任务;在上级任务中创建任务执行结果发送接口,在任务执行结果发送接口中定义任务执行结果发送协议;在下级任务中创建任务执行结果接收接口,在任务执行结果接收接口中,定义与任务执行结果发送协议对应的任务执行结果接收协议;

s2:同时开启上级任务和下级任务,上级任务处于任务执行状态,下级任务处于休眠状态,转到s3;

s3:上级任务执行完成后,将任务执行结果通过任务执行结果发送接口发送至下级任务的任务执行结果接收接口中,任务执行结果包括上级任务执行成功结果或上级任务执行失败结果,转到s4;

s4:任务执行结果接收接口收到任务执行结果后,下级任务由休眠状态变更为唤醒状态;当任务执行结果为上级任务执行失败结果时,转到s5;当任务执行结果为上级任务执行成功结果时,转到s6;

s5:下级任务由唤醒状态变更为休眠状态;

s6:下级任务开始执行。

本发明提供的同步任务的处理系统,包括同步任务开启模块、同步任务交互模块、执行结果发送模块和下级任务执行模块;

同步任务交互模块用于:定义需要等待其他任务完成后再执行的任务为下级任务,所述其他任务为上级任务;在上级任务中创建任务执行结果发送接口,在任务执行结果发送接口中定义任务执行结果发送协议;在下级任务中创建任务执行结果接收接口,在任务执行结果接收接口中,定义与任务执行结果发送协议对应的任务执行结果接收协议;

同步任务开启模块用于:同时开启上级任务和下级任务,上级任务处于任务执行状态,下级任务处于休眠状态;

执行结果发送模块用于:上级任务执行完成后,将任务执行结果通过任务执行结果发送接口发送至下级任务的任务执行结果接收接口中,任务执行结果包括上级任务执行成功结果或上级任务执行失败结果,向下级任务执行模块发送下级任务执行信号;

下级任务执行模块用于:收到下级任务执行信号后,将下级任务由休眠状态变更为唤醒状态;当任务执行结果为上级任务执行失败结果时,将下级任务由唤醒状态变更为休眠状态;当任务执行结果为上级任务执行成功结果时,触发下级任务开始执行。

与现有技术相比,本发明的优点在于:

(1)参见本发明s1至s3可知,本发明的同步任务(上级任务和下级任务),通过任务执行结果发送和接收接口相耦合,与现有技术中通过任务定时器或全局任务变量耦合同步任务相比,本发明的执行结果发送和接收接口占用的系统资源较小,而且通过任务执行结果发送和接收接口相耦合同步任务的耦合度较低,不仅便于同步任务的扩展,而且不会影响系统的性能。

与此同时,与现有技术中通过下级(下级任务或者任务定时器)轮询监听上级任务的执行状态相比,参见本发明s3至s6可知,本发明通过上级任务直接向下级任务发送任务执行结果,即上级任务完成后能够立即激活并执行下级任务,不会出现同步任务间切换延迟的问题,保证了同步任务的运行质量。

进一步,本参见本发明s2可知,本发明的任务执行结果发送接口位于上级任务中,与现有技术中的全局任务变量相比,任务执行结果发送接口的安全性能显著增强,能够保证同步任务的正常执行。

(2)本发明当上级任务执行失败时,会向所有下级任务广播上级任务执行失败结果和失败原因,以便定位问题和维修,进而提高工作效率。

附图说明

图1为本发明实施例中的同步任务的处理方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的同步任务的处理方法,包括以下步骤:

s1:定义需要等待其他任务完成后再执行的任务为下级任务,所述其他任务为上级任务,同时开启上级任务和下级任务,上级任务处于任务执行状态,下级任务处于休眠状态,其原因在于:下级任务的运行依赖上级任务的完成结果,因此下级任务未收到完成结果前不会被唤醒,即使被开启也只会处于休眠状态,转到s2。

s2:在上级任务中创建任务执行结果发送接口,在任务执行结果发送接口中定义任务执行结果发送协议;在下级任务中创建任务执行结果接收接口,在任务执行结果接收接口中,定义与任务执行结果发送协议对应的任务执行结果接收协议,转到s3。

s2中任务执行结果的回调函数为:onresult(boolbaton,stringmsg),其中baton代表任务执行状态,当任务执行结果为上级任务执行完成时,baton为true,msg为空;当任务执行结果为上级任务执行失败时,baton为false,此时msg为失败原因。

s3:上级任务执行完成后,将任务执行结果通过任务执行结果发送接口发送至下级任务的任务执行结果接收接口中,任务执行结果包括上级任务执行成功结果(true)或上级任务执行失败结果(false);当任务执行结果为上级任务执行失败结果时,上级任务发送的任务执行结果还包括失败原因,转到s4。

s4:任务执行结果接收接口收到任务执行结果后,下级任务由休眠状态变更为唤醒状态。当任务执行结果为上级任务执行失败结果时,转到s5;当任务执行结果为上级任务执行成功结果时,转到s6。

s5:判断下级任务是否为同步任务中最后一个任务,若是,下级任务由唤醒状态变更为休眠状态,结束;否则下级任务将上级任务执行失败结果和失败原因,传递至下一个下级任务后,由唤醒状态变更为休眠状态,结束。

通过s5可知,本实施例当上级任务执行失败时,会向所有下级任务广播上级任务执行失败结果和失败原因,以便定位问题和维修,进而提高工作效率。

s6:下级任务开始执行,下级任务向上级任务返回任务开始执行信息,上级任务收到任务开始执行信息后,关闭上级任务使用的线程,以释放系统资源,结束。

本发明实施例中的同步任务的处理系统,包括同步任务开启模块、同步任务交互模块、执行结果发送模块和下级任务执行模块。

同步任务交互模块用于:定义需要等待其他任务完成后再执行的任务为下级任务,所述其他任务为上级任务;在上级任务中创建任务执行结果发送接口,在任务执行结果发送接口中定义任务执行结果发送协议;在下级任务中创建任务执行结果接收接口,在任务执行结果接收接口中,定义与任务执行结果发送协议对应的任务执行结果接收协议。

同步任务开启模块用于:同时开启上级任务和下级任务,上级任务处于任务执行状态,下级任务处于休眠状态。

执行结果发送模块用于:上级任务执行完成后,将任务执行结果通过任务执行结果发送接口发送至下级任务的任务执行结果接收接口中,任务执行结果包括上级任务执行成功结果或上级任务执行失败结果,当任务执行结果为上级任务执行失败结果时,任务执行结果中还包括失败原因;向下级任务执行模块发送下级任务执行信号。

下级任务执行模块用于:收到下级任务执行信号后,将下级任务由休眠状态变更为唤醒状态。当任务执行结果为上级任务执行失败结果时,将下级任务由唤醒状态变更为休眠状态;若下级任务为同步任务中间的任务,则将上级任务执行失败结果和失败原因传递至下一个下级任务。当任务执行结果为上级任务执行成功结果时,触发下级任务开始执行;向同步任务开启模块返回任务开始执行信息;同步任务开启模块收到任务开始执行信息后,关闭上级任务使用的线程。

通过本发明实施例可知,本发明实施例中的同步任务(上级任务和下级任务),通过任务执行结果发送和接收接口相耦合,与现有技术中通过任务定时器或全局任务变量耦合同步任务相比,本实施例中执行结果发送和接收接口占用的系统资源较小,而且通过任务执行结果发送和接收接口相耦合同步任务的耦合度较低,不仅便于同步任务的扩展,而且不会影响系统的性能。

与此同时,与现有技术中通过下级(下级任务或者任务定时器)轮询监听上级任务的执行状态相比,本实施例通过上级任务直接向下级任务发送任务执行结果,即上级任务完成后能够立即激活并执行下级任务,不会出现同步任务间切换延迟的问题,保证了同步任务的运行质量。

进一步,本实施例的任务执行结果发送接口位于上级任务中,与现有技术中的全局任务变量相比,任务执行结果发送接口的安全性能显著增强,能够保证同步任务的正常执行。

进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1