一种复杂时序处理队列的动态预测的方法及装置制造方法及图纸

技术编号:8719588 阅读:183 留言:0更新日期:2013-05-17 20:56
本发明专利技术适用于计算机软件领域,提供了一种复杂时序处理队列的动态预测的方法和装置,所述方法包括:预先将所有命令操作分别对应划分为一个或多个原子操作;接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列;依次执行所述队列中的原子操作。通过本发明专利技术,极大的简化了执行命令操作时的逻辑复杂度,减少了BUG的产生率。

【技术实现步骤摘要】

本专利技术属于计算机软件领域,尤其涉及一种复杂时序处理队列的动态预测的方法及装置
技术介绍
现今,在实现某一命令(如上传、删除等命令)时,一般采用下述两种方法来实现。其一,传统应用程序的在执行某一命令时,基本是按照预先设置的顺序来执行的,即:遵循事先设定的逻辑,依次执行。这样的情况下,很少有事件能改变预先设置的执行流程,而且这些事件主要涉及异常情况。因此,通过传统方法依次执行命令容易产生异常,使得维护成本过高。其二,通过状态机来执行命令。状态机其实就是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”,每个事件都在当前节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。状态机通过该系列的事件在各个节点间通过转移函数跳转至不同的节点执行。当执行到达表示终态的节点时,状态机停止。然而,这样的方式在节点众多、需跳转多个节点执行时,其逻辑是非常复杂的。综上,在采用现有的技术来执行命令时,无可避免会遇到下述问题:逻辑过于复杂,维护成本过高,且BUG (缺陷)产生率较高。
技术实现思路
本专利技术实施例的目的在于提供一种复杂时序处理队列的动态预测的方法和装置,旨在解决现有的执行命令的方式逻辑过于复杂且容易产生缺陷的问题。本专利技术实施例是这样实现的,一种复杂时序处理队列的动态预测的方法,所述方法包括:预先将所有命令操作分别对应划分为一个或多个原子操作;接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列; 依次执行所述队列中的原子操作。本专利技术实施例的另一目的在于提供一种复杂时序处理队列的动态预测的装置,所述装置包括:原子划分单元,用于预先将所有命令操作分别对应划分为一个或多个原子操作;队列添加单元,用于接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列;操作执行单元,用于依次执行所述队列中的原子操作。在本专利技术实施例中,通过将命令操作划分为一个或多个原子操作,在执行命令操作时,通过队列执行相应的原子操作,极大的简化了执行命令操作时的逻辑复杂度,而且由于逻辑的简化,也减少了 BUG的产生率。另外,由于已经预先将命令操作划分为了原子操作,便于动态改变命令的执行逻辑,缺陷的产生的概率更低。同时,只要将命令操作划分为对应的原子操作,即可移植该方法执行各命令操作,具有较强的适应性和扩展性。附图说明图1是本专利技术实施例提供的复杂时序处理队列的动态预测的方法流程图;图2是本专利技术实施例提供的复杂时序处理队列的动态预测的装置结构示意图;图3是本专利技术实施例提供的一个将复杂时序处理队列的动态预测的方法的用于上传操作的实例的流程图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例提供一种复杂时序处理队列的动态预测的方法,通过将命令操作划分为一个或多个原子操作,在执行命令操作时,通过队列执行相应的原子操作。大大简化了执行命令操作时的逻辑复杂度,且不易产生缺陷。本专利技术提供了一种复杂时序处理队列的动态预测的方法:所述方法包括:预先将所有命令操作分别对应划分为一个或多个原子操作;接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列;依次执行所述队列中的原子操作。所述装置包括:原子划分单元,用于预先将所有命令操作分别对应划分为一个或多个原子操作;队列添加单元,用于接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列;操作执行单元,用于依次执行所述队列中的原子操作。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一:如图1所示为本专利技术提供的复杂时序处理队列的动态预测方法的流程图,为了便于说明,仅示出了与本专利技术实施例相关的部分。在步骤SlOl中,预先将所有命令操作分别对应划分为一个或多个原子操作。在本专利技术实施例中,所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束。原子操作所执行的逻辑在业务层次上不能再进行更小的划分,原子操作不相互依赖,且原子操作能够被重用。在执行命令操作前,根据原子操作不可分割的特性,预先将所有的命令操作分别对应划分为一个或多个原子操作。下面以上传操作为例来说明。由于上传文件需要先更新目录以检查所需上传的文件是否已经存在,当不存在时才可执行上传,因此,可将上传操作划分为更新目录和上传文件两个原子操作。所述原子操作包括但不限于:文件创建、文件移动、更新目录。所述命令操作即表示完成某一目标的指令,如上传、删除等。其中,每个命令操作都是一个可执行的逻辑单元,通过其内部的执行队列来执行命令操作;同时,命令操作是可聚合的,即多个命令操作可以聚合成一个新的命令操作。在本实施例中,原子操作的时序性和关联性通过队列来体现,即为步骤S102和步骤S103。执行队列可以是固定的,例如某个固定的业务逻辑由一组固定的原子操作组成,也就是步骤S103中的依次执行原子操作。另外,业务逻辑也可以是动态的,例如业务逻辑可能根据不同的场景进行动态调整,这时候通过动态调整执行队列,就可以适应这种情况,也就是步骤S103中的动态执行部分。在步骤S102中,接收执行命令操作的指令,将执行命令操作所对应的原子操作加入队列。在本专利技术实施例中,当接收到执行命令操作的指令后,由于预先已经将所有的命令操作都划分为了一个或多个对应的原子操作,因此根据该指令就可知道该指令对应的命令操作在执行时需要哪些原子操作。于是,将预先划分的与该命令操作所对应的原子操作加入队列中等待执行。此时,队列中的原子操作数量大于或等于一个。在步骤S103中,依次执行队列中的原子操作。在本专利技术实施例中,当把与命令操作对应的原子操作加入队列中后,依次执行队列中的原子操作以执行命令操作。即首先执行第一个原子操作,在执行完第一个原子操作后,接着执行下一个原子操作。且在执行队列中原子操作时,每执行完一个原子操作,则将该原子操作移出队列。此时,队列中的原子操作数量仍然是大于或等于一个。对于固定的业务逻辑而言,将命令操作所对应的一组原子操作依次加入队列,并依次执行该队列中的原子操作。然而,在执行队列中原子操作的过程中,可能因为逻辑的改变而动态改变原子操作的执行,具体通过以下两种情况来详细说明。其一,执行所述队列中的原子操作时,当遇到异常逻辑需加入当前执行的命令操作以外的命令操作时,将新加入的命令操作对应的原子操作加入队列首位后依次执行新加入的命令操作对应的原子操作。在本专利技术实施例中,当遇到异常逻辑且需要加入新的命令操作时,暂时停止执行当前命令操作对应的原子操作,转而将新加入的命令操作对应的原子操作加入到队列的首位,执行这些加入队列首位的新加入的命令操作对应的原子操作。因此,可简便处理异常逻辑。其二,在执行所述队列中的原子操作时,当接收到停止执行当前命令操作的指令时,将当前正在执行的命令操作对应的原子操作移出所述队列。在本专利技术实施例中,在执行所述队列中的原子操作时,若用户认为不该执行该命令操作,或已经没有必要继续执行该命令操作了,则可能发出停止执行当前命令操作的指令。因此,当接收到停止执行当前命令操作的指令时,将当前正在执行的命令操作本文档来自技高网...

【技术保护点】
一种复杂时序处理队列的动态预测方法,其特征在于,所述方法包括下述步骤:预先将所有命令操作分别对应划分为一个或多个原子操作;接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列;依次执行所述队列中的原子操作。

【技术特征摘要】
1.一种复杂时序处理队列的动态预测方法,其特征在于,所述方法包括下述步骤: 预先将所有命令操作分别对应划分为一个或多个原子操作; 接收执行命令操作的指令,将执行所述命令操作所对应的原子操作加入队列; 依次执行所述队列中的原子操作。2.如权利要求1所述的方法,其特征在于,执行所述队列中的原子操作时,每执行完一个原子操作,则将该原子操作移出所述队列。3.如权利要求1所述的方法,其特征在于,执行所述队列中的原子操作时,当遇到异常逻辑需加入当前执行的命令操作以外的命令操作时,将新加入的命令操作对应的原子操作加入所述队列首位后依次执行所述新加入的命令操作对应的原子操作。4.如权利要求1所述的方法,其特征在于,在执行所述队列中的原子操作时,当接收到停止执行当前命令操作的指令时,将当前正在执行的命令操作对应的原子操作移出所述队列。5.如权利要求1至4任一权利要求所述的方法,其特征在于,所述队列中的原子操作的个数大于或等于一个。6.一种复杂时序处理队列的动态预测装置,其特征...

【专利技术属性】
技术研发人员:邓宇峰李静
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1