事件的处理方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种事件的处理方法及装置。
【背景技术】
[0002] 目前,在计算机领域中,事件的处理一般包括异步操作和同步操作。异步操作是指 在处理一个事件时,还可以同时处理其他事件。而同步操作是指在处理一个事件时,在该事 件完成之前,不能处理其他事件。随着计算机技术中各种功能的完善,处理的业务进一步复 杂化,各种事件也越来越多。以修改密码为例,当前较为简单的密码修改过程也包括多个事 件:事件一、确认用户的账户是否登陆;事件二、若账户已经登陆,接收用户输入的新密码; 事件三、校验所述新密码是否合法;事件四、若所述新密码合法,向服务器提交密码修改; 事件五、若密码修改成功,向外提示用户密码修改成功。可见,每个事件的执行均需要依赖 于上一个事件。
[0003] 目前,若要完成一连串的多个事件操作,一般需要应用到异步(简称Async)技术, 在Async技术中一般包括两种对事件的处理方式,其中一种是依次检测事件执行队列中的 各事件是否完成,如果完成,再执行事件执行队列中已完成事件的后续事件。另一种是对事 件进行监听,若监听到某一事件完成,则执行队列中该事件的后续事件。随着数据业务的增 大,当前一个事件执行队列中的事件数量也逐渐增多,事件的业务逻辑复杂度也逐渐增高, 例如事件执行队列不仅仅是从队列头部顺序执行到队列尾部,还可以不按照顺序进行执行 等,即当前的事件执行队列并非按照线性执行。而通过Async技术处理事件的方式仅能按 照线性执行事件执行队列,而难以处理逻辑复杂度较高的非线性事件执行队列。
【发明内容】
[0004] 本发明的实施例提供一种事件的处理方法及装置,能够解决现有技术中通过 Async技术处理事件的方式仅能按照线性执行事件执行队列,而难以处理逻辑复杂度较高 的非线性事件执行队列的问题。
[0005] 为达到上述目的,本发明采用如下技术方案:
[0006] 一种事件的处理方法,包括:
[0007] 为增加入事件执行队列中的事件分配事件身份标识;
[0008] 对事件执行队列中的事件进行处理,生成处理结果;
[0009] 判断所述处理结果是否满足预设条件,并判断所述预设条件是否包括所述事件身 份标识;
[0010] 若所述处理结果满足所述预设条件,且所述预设条件包括所述事件身份标识,则 根据所述事件身份标识,处理所述事件身份标识对应的事件。
[0011] 一种事件的处理装置,包括:
[0012] 分配单元,用于为增加入事件执行队列中的事件分配事件身份标识;
[0013] 处理单元,用于对事件执行队列中的事件进行处理,生成处理结果;
[0014] 判断单元,用于判断所述处理单元生成的处理结果是否满足预设条件,并判断所 述预设条件是否包括所述事件身份标识;
[0015] 所述处理单元,还用于在所述判断单元判断到所述处理结果满足所述预设条件, 且所述预设条件包括所述事件身份标识时,根据所述事件身份标识,处理所述事件身份标 识对应的事件。
[0016] 本发明实施例提供的事件的处理方法及装置,通过为进入事件执行队列的各事件 分配事件身份标识,从而在处理各事件时,若处理得到的某一处理结果满足预先设置的预 设条件,则可以通过预设条件中的事件身份标识处理所述事件身份标识对应的事件,从而 可以对事件执行队列进行跳跃处理或者返回处理,满足了逻辑复杂度较高的非线性事件执 行队列。而现有技术中通过Async技术处理事件的方式仅能按照线性执行事件执行队列, 仅能按照事件执行队列的各事件的次序,依次处理。因此,本发明能够处理逻辑复杂度较高 的非线性事件执行队列。
【附图说明】
[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0018] 图1为本发明实施例提供的事件的处理方法的流程图;
[0019] 图2为本发明又一实施例提供的事件的处理方法的流程图;
[0020] 图3为本发明实施例提供的事件的处理装置的结构示意图。
【具体实施方式】
[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0022] 为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说 明。
[0023] 如图1所示,本发明实施例提供的事件的处理方法,包括:
[0024] 101、为增加入事件执行队列中的事件分配事件身份标识。
[0025] 所述事件身份标识可以按照事件执行队列中的事件顺序,依次分配,也可以是随 机分配,但不仅局限于此。
[0026] 102、对事件执行队列中的事件进行处理,生成处理结果。
[0027] 103、判断所述处理结果是否满足预设条件,并判断所述预设条件是否包括所述事 件身份标识。
[0028] 104、若所述处理结果满足所述预设条件,且所述预设条件包括所述事件身份标 识,则根据所述事件身份标识,处理所述事件身份标识对应的事件。
[0029] 所述预设条件可以是根据不同事件分别进行预先设置。例如在修改密码输的环境 中,步骤一为接收用户输入的账号和密码,步骤二为判断用户是否成功输入账号和密码。此 时,对于步骤二的事件,所述预设条件可以有两个,一个是用户成功输入账号和密码,另一 个是用户未成功输入账号和密码,该两个预设条件中可以分别包括步骤三的事件身份标识 和步骤四的事件身份标识,从而能够分别执行步骤三:向外提示用户进行密码修改,并提供 新密码输入框,或者执行步骤四:提示用户账号和密码输入错误,并返回重新接收用户输入 的账号和密码。
[0030] 值得说明的是,本发明实施例提供的事件的处理方法的执行主体是一种事件的处 理装置,所述事件的处理装置可以运行于计算机等终端设备中。本发明实施例所处理的事 件执行队列可以是线性事件执行队列,也可以是逻辑复杂度较高的非线性事件执行队列。
[0031] 本发明实施例提供的事件的处理方法,通过为进入事件执行队列的各事件分配事 件身份标识,从而在处理各事件时,若处理得到的某一处理结果满足预先设置的预设条件, 则可以通过预设条件中的事件身份标识处理所述事件身份标识对应的事件,从而可以对事 件执行队列进行跳跃处理或者返回处理,满足了逻辑复杂度较高的非线性事件执行队列。 而现有技术中通过Async技术处理事件的方式仅能按照线性执行事件执行队列,仅能按照 事件执行队列的各事件的次序,依次处理。因此,本发明能够处理逻辑复杂度较高的非线性 事件执行队列。
[0032] 进一步的,下面列举一个更为具体的实施例,如图2所示,本发明又一实施例提供 的事件的处理方法,包括:
[0033] 201、将各事件增加入事件执行队列。
[0034] 在计算机领域中,为了完成一系列流程,可能需要进行多个事件。例如在一个修改 密码的环境中,可能需要接收用户输入的账号和密码,判断所述输入的账号和密码是否成 功,若账号和密码输入成功则向外提示用户进行密码修改,并提供新密码输入框等步骤,每 个步骤均对应一个事件,此外,随着业务逻辑的增加,例如验证码技术、短信验证等,真实的 密码修改环境可能更为复杂。因此在处理这一系列流程时,一般将各事件放入事件执行队 列中进行处理。
[0035] 202、为增加入事件执行队列中的事件分配事件身份标识以及属性值。
[0036] 所述事件身份标识可以按照事件执行队列中的事件顺序,依次分配,也可以是随 机分配,还可以指定特定事件,为其分配事件身份标识,但不仅局限于此。
[0037] 其中,所述属性值包括第一属性值和第二属性值;所述第一属性值用于指示在处 理所述事件时,阻塞所述事件执行队列中所述事件之后的其它事件被处理;所述第二属性 值用于指示在处理所述事件时,不阻塞所述事件执行队列中所述事件之后的其它事件被处 理。例如,以true值表示第一属性值,以false值表示第二属性值。通过设置所述属性值, 控制是否阻塞后续事件的处理,可以有效控制各事件的执行。
[0038] 203、判断所述事件执行队列中的待处理事件之前是否有事件未处理。
[0039] 若所述事件执行队列中的待处理事件之前没有事件未处理,执行步骤204 ;若所 述事件执行队列中的待处理事件之前有事件未处理,执行步骤206。
[0040] 具体的,若所述事件执行队列中的待处理事件之前有事件未处理,则需要确认未 处理的事件