(12)发明专利申请
(10)申请公布号 CN 111367629 A(43)申请公布日 2020.07.03
(21)申请号 202010236020.4(22)申请日 2020.03.30
(71)申请人 绿盟科技集团股份有限公司
地址 100089 北京市海淀区北洼路4号益泰
大厦5层
申请人 北京神州绿盟科技有限公司(72)发明人 郭兰杰 浦明 赵粤征 刘文懋 (74)专利代理机构 北京同达信恒知识产权代理
有限公司 11291
代理人 孟柯(51)Int.Cl.
G06F 9/46(2006.01)G06F 9/48(2006.01)
权利要求书2页 说明书12页 附图4页
(54)发明名称
一种延时任务处理方法及装置
(57)摘要
本发明公开了一种延时任务处理方法及装置,用以解决现有的SOAR平台的剧本的延时任务处理方法中,延时执行的动作会阻塞剧本中该动作后面的其它需要实时执行的动作的执行,而使得剧本的执行效率较低、资源占用无法及时释放的问题。所述延时任务处理方法,包括:当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;将所述上下文信息存储到预设数据库中;将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作。
CN 111367629 ACN 111367629 A
权 利 要 求 书
1/2页
1.一种延时任务处理方法,其特征在于,包括:当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;
将所述上下文信息存储到预设数据库中;
将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作。
2.如权利要求1所述的方法,其特征在于,所述上下文信息还包括所述延时任务的创建时间;
将所述上下文信息存储到预设数据库中,具体包括:根据所述创建时间和所述执行时间确定延时时长,所述延时时长等于所述执行时间减去所述创建时间;
确定所述延时时长对应的时间等级;
根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表;
将所述上下文信息存储到所述数据表中,所述数据表为所述数据库中建立的用于存储待执行延时动作相关参数的数据表。
3.如权利要求2所述的方法,其特征在于,所述轮询进程包括若干轮询线程;将所述待执行延时动作加入预设轮询进程中,具体包括:根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别;将所述待执行延时动作加入所述轮询级别对应的轮询线程中。4.如权利要求3所述的方法,其特征在于,还包括:
当确定所述执行时间与轮询到所述待执行延时动作的时间的差小于等于所述轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别;
将所述上下文信息更新到低一级的时间等级对应的数据表中;
将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中。5.如权利要求1所述的方法,其特征在于,所述轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程;
当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作,具体包括:
当确定轮询到所述执行时间时,启动所述业务线程;
接收所述业务线程发送的触发执行所述待执行延时动作的请求;根据所述上下文信息执行所述待执行延时动作。6.一种延时任务处理装置,其特征在于,包括:获取单元,用于当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;
存储单元,用于将所述上下文信息存储到预设数据库中;处理单元,用于将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作。
7.如权利要求6所述的装置,其特征在于,所述上下文信息还包括所述延时任务的创建
2
CN 111367629 A
权 利 要 求 书
2/2页
时间;
所述存储单元,具体用于根据所述创建时间和所述执行时间确定延时时长,所述延时时长等于所述执行时间减去所述创建时间;确定所述延时时长对应的时间等级;根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表;将所述上下文信息存储到所述数据表中,所述数据表为所述数据库中建立的用于存储待执行延时动作相关参数的数据表。
8.如权利要求7所述的装置,其特征在于,所述轮询进程包括若干轮询线程;所述处理单元,具体用于根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别;将所述待执行延时动作加入所述轮询级别对应的轮询线程中。
9.如权利要求8所述的装置,其特征在于,还包括:降级单元,用于当确定所述执行时间与轮询到所述待执行延时动作的时间的差小于等于所述轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别;
第一更新单元,用于将所述上下文信息更新到低一级的时间等级对应的数据表中;第二更新单元,用于将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中。
10.如权利要求6所述的装置,其特征在于,所述轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程;
所述处理单元,具体用于当确定轮询到所述执行时间时,启动所述业务线程;接收所述业务线程发送的触发执行所述待执行延时动作的请求;根据所述上下文信息执行所述待执行延时动作。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5任一项所述的延时任务处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一项所述的延时任务处理方法中的步骤。
3
CN 111367629 A
说 明 书
一种延时任务处理方法及装置
1/12页
技术领域
[0001]本发明涉及网络安全领域,尤其涉及一种延时任务处理方法及装置。
背景技术
[0002]SOAR(Security Orchestration,Automation and Response,安全编排与自动化响应)自2017年由Gartner提出,为安全运营提供了新的思路,它能够快速检测威胁、减少安全人工分析投入、快速响应,以提高安全运营的效率。
[0003]安全编排是指将客户不同的系统或者一个系统内部不同组件的安全能力通过可编程接口API(Application Programming Interface,应用程序接口)和人工检测点,按照一定的逻辑关系组合到一起,用以完成某个特定安全操作的过程。SOAR平台可以对现有的安全能力进行灵活编排,通过编写剧本(Playbook)完成场景构建,实现自动化运营。其中,剧本是SOAR平台中一系列动作(Action)连接起来的,包含了安全运营完整的研判处置流程,在安全运营中,动作的执行有实时的也有延时的,例如,实时地利用防火墙设备对外网攻击源进行封堵,而延时数天后执行解封堵操作。现有的延时任务的处理方法是将整个剧本的执行进程挂起,等待延时周期到达后唤醒进程继续执行,其存在以下问题:延时执行的动作会阻塞剧本中该动作后面的其它需要实时执行的动作的执行,降低了剧本的执行效率。并且,延时执行的动作在进程挂起期间,无法及时释放掉无用的资源占用,如内存空间。发明内容
[0004]为了解决现有的SOAR平台的剧本的延时任务处理方法中,延时执行的动作会阻塞剧本中该动作后面的其它需要实时执行的动作的执行,而使得剧本的执行效率较低、资源占用无法及时释放的问题,本发明实施例提供了一种延时任务处理方法及装置。[0005]第一方面,本发明实施例提供了一种延时任务处理方法,包括:[0006]当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;[0007]将所述上下文信息存储到预设数据库中;
[0008]将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述待执行延时动作的时间为所述执行时间时,根据所述上下文信息执行所述待执行延时动作。[0009]本发明实施例提供的延时任务处理方法中,SOAR平台当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息中包括所述待执行延时动作的执行时间,将所述待执行延时动作的上下文信息存储到预设数据库中,并将所述待执行延时动作加入预设轮询进程中,当轮询到所述待执行延时动作的时间为所述执行时间时,根据所述待执行延时动作的上下文信息执行所述待执行延时动作,本发明实施例提供的上述延时任务处理方法,将SOAR平台的剧本中的延时任务代理给独立的轮询进程管理,将需要延时执行的动作和剧本执行进程分离,从而,当有延时任务时,剧本执行进程无需挂起,其可以继续执行延时动作后的实时动作,由于剧本执行进程只处理实时的动作,可以在
4
CN 111367629 A
说 明 书
2/12页
较短时间内完成并释放进程资源,节省了剧本执行进程的资源消耗,提高了剧本的执行效率。
[0010]较佳地,所述上下文信息还包括所述延时任务的创建时间;[0011]将所述上下文信息存储到预设数据库中,具体包括:[0012]根据所述创建时间和所述执行时间确定延时时长,所述延时时长等于所述执行时间减去所述创建时间;[0013]确定所述延时时长对应的时间等级;
[0014]根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表;
[0015]将所述上下文信息存储到所述数据表中,所述数据表为所述数据库中建立的用于存储待执行延时动作相关参数的数据表。[0016]较佳地,所述轮询进程包括若干轮询线程;[0017]将所述待执行延时动作加入预设轮询进程中,具体包括:[0018]根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别;
[0019]将所述待执行延时动作加入所述轮询级别对应的轮询线程中。[0020]可选地,所述方法,还包括:
[0021]当确定所述执行时间与轮询到所述待执行延时动作的时间的差小于等于所述轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别;[0022]将所述上下文信息更新到低一级的时间等级对应的数据表中;
[0023]将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中。[0024]较佳地,所述轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程;
[0025]当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作,具体包括:
[0026]当确定轮询到所述执行时间时,启动所述业务线程;
[0027]接收所述业务线程发送的触发执行所述待执行延时动作的请求;[0028]根据所述上下文信息执行所述待执行延时动作。[0029]第二方面,本发明实施例提供了一种延时任务处理装置,包括:[0030]获取单元,用于当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;[0031]存储单元,用于将所述上下文信息存储到预设数据库中;[0032]处理单元,用于将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作。[0033]较佳地,所述上下文信息还包括所述延时任务的创建时间;[0034]所述存储单元,具体用于根据所述创建时间和所述执行时间确定延时时长,所述延时时长等于所述执行时间减去所述创建时间;确定所述延时时长对应的时间等级;根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表;将所述上下文信息存储到所述数据表中,所述数据表为所述数据库中建立的用于存储待执
5
CN 111367629 A
说 明 书
3/12页
行延时动作相关参数的数据表。[0035]较佳地,所述轮询进程包括若干轮询线程;[0036]所述处理单元,具体用于根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别;将所述待执行延时动作加入所述轮询级别对应的轮询线程中。[0037]可选地,所述装置,还包括:[0038]降级单元,用于当确定所述执行时间与轮询到所述待执行延时动作的时间的差小于等于所述轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别;[0039]第一更新单元,用于将所述上下文信息更新到低一级的时间等级对应的数据表中;
[0040]第二更新单元,用于将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中。
[0041]较佳地,所述轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程;[0042]所述处理单元,具体用于当确定轮询到所述执行时间时,启动所述业务线程;接收所述业务线程发送的触发执行所述待执行延时动作的请求;根据所述上下文信息执行所述待执行延时动作。
[0043]本发明提供的延时任务处理装置的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。[0044]第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的延时任务处理方法。[0045]第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的延时任务处理方法中的步骤。[0046]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明
[0047]此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:[0048]图1为本发明实施例中,延时任务处理方法的应用场景示意图;[0049]图2为本发明实施例提供的延时任务处理方法的实施流程示意图;[0050]图3为本发明实施例中,将待执行延时动作的上下文信息存储到预设数据库中的实施流程示意图;
[0051]图4为本发明实施例中,将待执行延时动作加入预设轮询进程中实施流程示意图;[0052]图5为本发明实施例中,轮询降级处理实施流程示意图;[0053]图6为本发明实施例中,执行待执行延时动作的实施流程示意图;[0054]图7为本发明实施例提供的延时任务处理装置的结构示意图;[0055]图8为本发明实施例提供的电子设备的结构示意图。
6
CN 111367629 A
说 明 书
4/12页
具体实施方式
[0056]为了解决现有的SOAR平台的剧本的延时任务处理方法中,延时执行的动作会阻塞剧本中该动作后面的其它需要实时执行的动作的执行,而使得剧本的执行效率较低、资源占用无法及时释放的问题,本发明实施例提供了一种延时任务处理方法及装置。[0057]以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。[0058]首先参考图1,其为本发明实施例提供的延时任务处理方法的应用场景示意图。SOAR平台设置有RPC(Remote Procedure Call,远程过程调用)接口,SOAR平台包括多个剧本,SOAR主进程下包括多个剧本执行子进程,本发明实施例以SOAR平台主进程下包括一个剧本执行子进程为例进行说明,当SOAR平台解析到剧本子进程中的延时任务时,获取延时任务中的待执行延时动作(即延时动作)的上下文信息,所述上下文信息为所述待执行延时动作的相关参数,所述上下文信息可以但不限于包括:所述待执行延时动作的执行时间、动作名称、动作参数、动作配置和延时任务的创建时间等。SOAR平台将所述待执行延时动作的上下文信息存储到预设数据库中,将所述待执行延时动作的相关参数配置入库,具体地,SOAR平台预先划分时间等级,可以划分四个时间等级:大于等于1天,定义为天级;大于等于1小时小于1天,定义为时级;大于等于60秒小于1小时,定义为分级;小于60秒,定义为秒级。SOAR平台预先设置时间等级和数据表的对应关系并存储,时间等级为天级对应的数据表用于存储延时时长为天级的待执行延时动作的上下文信息,时间等级为时级对应的数据表用于存储延时时长为时级的待执行延时动作的上下文信息,时间等级为分级对应的数据表用于存储延时时长为分级的待执行延时动作的上下文信息,时间等级为秒级对应的数据表用于存储延时时长为秒级的待执行延时动作的上下文信息,其中,所述数据表为所述数据库中的数据表。SOAR平台首先确定待执行延时动作的延时时长对应的时间等级,根据所述预设的时间等级和数据表的对应关系,确定所述时间等级对应的数据表,将所述待执行延时动作的上下文信息存储到对应的数据表中,延时时长通过执行时间减去延时任务的创建时间获得,预设数据库可以但不限于为关系型数据库PostgreSQL数据库,PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统,本发明实施例以PostgreSQL数据库为例进行说明。SOAR平台还预先设置时间等级和轮询级别的对应关系并存储,将时间等级为天级对应的轮询级别定义为天级轮询,将轮询级别为天级轮询对应的轮询线程定义为天级轮询线程,天级轮询线程的轮询周期是1天,所述天级轮询线程按照1天1次的时间周期进行轮询,将时间等级为时级对应的轮询级别定义为时级轮询,将轮询级别为时级轮询对应的轮询线程定义为时级轮询线程,时级轮询线程的轮询周期是1小时,所述时级轮询线程按照每小时1次的时间周期进行轮询,将时间等级为分级对应的轮询级别定义为分级轮询,将轮询级别为分级轮询对应的轮询线程定义为分级轮询线程,分级轮询线程的轮询周期是1分,所述分级轮询线程按照每分钟1次的时间周期进行轮询,将时间等级为秒级对应的轮询级别定义为秒级轮询,将轮询级别为秒级轮询对应的轮询线程定义为秒级轮询线程,秒级轮询线程的轮询周期是1秒,所述秒级轮询线程按照每秒1次的时间周期进行轮询,其中,天级轮询线程用于处理延时时长为天级的延时动作,时级轮询线程用于处理延时时长为时级的延时动作,分级轮询线程用于处理延时时长为分级的延时动作,秒级轮询线程
7
CN 111367629 A
说 明 书
5/12页
用于处理延时时长为分级的延时动作。SOAR平台预先建立延时动作轮询进程,延时动作轮询进程包括多个轮询线程:天级轮询线程、时级轮询线程、分级轮询线程、秒级轮询线程。SOAR平台根据预设的时间等级和轮询等级的对应关系,确定所述待执行延时动作的延时时长对应的时间等级对应的轮询级别,将所述待执行延时动作加入所述轮询级别对应的轮询线程中,例如,延时任务的延时时长是2天2时10分10秒,则延时时长对应的时间等级是天级,其对应的轮询级别为天级轮询,则将该延时任务中的待执行延时动作加入到天级轮询线程中。在轮询过程中,当待执行延时动作的执行时间与轮询到所述待执行延时动作的时间的差值小于等于当前轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别,并将所述待执行延时动作的上下文信息更新到所述低一级的时间等级对应的数据表中,将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中,例如,天级轮询线程中,当待执行延时动作的执行时间与轮询到所述待执行延时动作的时间的差值小于等于1天时,例如,所述差值为12时10分10秒,则将待执行延时动作的轮询级别降级为时级轮询,将所述待执行延时动作的上下文信息从时间等级为天级对应的数据表中删除,更新至时间等级为时级对应的数据表中,将所述待执行延时动作更新到时级轮询线程中,由时级轮询线程进行处理,轮询是否有到期动作,依次类推,当所述差值小于等于1小时时,则将待执行延时动作的轮询级别降级为分级轮询,将所述待执行延时动作的上下文信息从时间等级为时级对应的数据表中删除,更新至时间等级为分级对应的数据表中,将所述待执行延时动作更新到分级轮询线程中,由分级轮询线程进行处理,轮询是否有到期动作,当所述差值小于等于1分时,则将待执行延时动作的轮询级别降级为秒级轮询,将所述待执行延时动作的上下文信息从时间等级为分级对应的数据表中删除,更新至时间等级为秒级对应的数据表中,将所述待执行延时动作更新到秒级轮询线程中,由秒级轮询线程进行处理,轮询是否有到期动作,直至轮询到执行时间时,即延时到期时,根据所述上下文信息执行所述待执行延时动作。具体地,由延时动作轮询进程启动一个新的业务线程,记为触发动作业务线程,请求SOAR平台接口,触发动作的执行,RPC接口通知SOAR平台执行动作,SOAR平台执行所述待执行延时动作后,返回结果,更新执行状态到相应数据表中。[0059]其中,对轮询线程的降级处理由延时动作轮询进程启动一个新的线程进行处理,记为降级业务线程,这样,将降级处理和轮询处理分开在不同的线程处理,避免了其对轮询功能的阻塞,提高了延时任务的处理效率。[0060]下面结合图1的应用场景,参考图2~6来描述根据本发明示例性实施方式的延时任务处理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
[0061]如图2所示,其为本发明实施例提供的延时任务处理方法的实施流程示意图,可以包括以下步骤:[0062]S11、当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间。[0063]具体实施时,SOAR平台当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息为所述待执行延时动作的相关参数,所述上下文信息可以但不限于包括:所述待执行延时动作的执行时间、动作名称、动作参数、动作配置和延
8
CN 111367629 A
说 明 书
6/12页
时任务的创建时间等。[0064]S12、将所述上下文信息存储到预设数据库中。[0065]具体实施时,SOAR平台将所述待执行延时动作的上下文信息存储到预设数据库中,预设数据库可以但不限于为关系型数据库PostgreSQL数据库,本发明实施例对此不作限定。
[0066]具体地,SOAR平台预先划分时间等级,可以划分四个时间等级:大于等于1天,定义为天级;大于等于1小时小于1天,定义为时级;大于等于60秒小于1小时,定义为分级;小于60秒,定义为秒级。SOAR平台预先设置时间等级和数据表的对应关系并存储,时间等级为天级对应的数据表用于存储延时时长为天级的待执行延时动作的上下文信息,时间等级为时级对应的数据表用于存储延时时长为时级的待执行延时动作的上下文信息,时间等级为分级对应的数据表用于存储延时时长为分级的待执行延时动作的上下文信息,时间等级为秒级对应的数据表用于存储延时时长为秒级的待执行延时动作的上下文信息,其中,所述数据表为所述数据库中建立的用于存储待执行延时动作相关参数的数据表,上述四个数据表字段定义相同,数据表格式如表1所示:
[0067]
[0068]
如表1中所示,所述数据表至少包括以下字段:name,即动作名称,其数据类型可以为varchar(可变长字符串);param,即动作参数,数据类型可以为jsonb(jsonb为PostgreSQL数据库中定义的内置表字段类型);config,即动作配置,包括配置待执行延时动作的执行实体的资产标识(asset_id)等,数据类型可以为jsonb;exec_time,即执行时间,数据类型可以为timestamp(时间戳);create_time,即创建时间,指延时任务的创建时间,数据类型可以为timestamp;status,即执行状态,指待执行延时动作的执行状态,可以但不限于包括四个状态:初始状态(new)、处理中(processing)、成功(success)和失败(fail),数据类型可以为varchar;level,即轮询级别,可以分为四个级别:天级(day)轮询、时级(hour)轮询、分级(minute)轮询和秒级(second)轮询,数据类型可以为varchar。其中,轮询级别是SOAR平台根据时间等级预先设定的。[0070]具体实施时,按照如图3所示的流程将所述待执行延时动作的上下文信息存储到预设数据库中,可以包括以下步骤:[0071]S21、根据延时任务的创建时间和待执行延时动作的执行时间确定延时时长。
[0069]
9
CN 111367629 A[0072]
说 明 书
7/12页
具体实施时,所述延时时长等于所述执行时间减去所述创建时间,SOAR平台通过
所述待执行延时动作的执行时间减去所述延时任务的创建时间确定延时时长。[0073]S22、确定所述延时时长对应的时间等级。[0074]具体实施时,SOAR平台确定所述延时时长对应的时间等级。[0075]S23、根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表。
[0076]具体实施时,SOAR平台根据预设的时间等级和数据表的对应关系,确定所述时间等级对应的数据表[0077]S24、将所述上下文信息存储到所述数据表中。[0078]具体实施时,SOAR平台将所述待执行延时动作的上下文信息存储到对应的数据表中。
[0079]S13、将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述待执行延时动作的时间为所述执行时间时,根据所述上下文信息执行所述待执行延时动作。[0080]具体实施时,SOAR平台将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述待执行延时动作的时间为所述执行时间时,根据所述上下文信息执行所述待执行延时动作。其中,预设轮询进程为延时动作轮询进程,是用于处理待执行延时任务的进程。[0081]具体地,所述轮询进程包括若干轮询线程,按照如图4所示的流程将所述待执行延时动作加入预设轮询进程中,可以包括以下步骤:[0082]S31、根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别。
[0083]具体实施时,SOAR平台预先设置时间等级和轮询级别的对应关系并存储,将时间等级为天级对应的轮询级别定义为天级轮询,将轮询级别为天级轮询对应的轮询线程定义为天级轮询线程,天级轮询线程的轮询周期是1天,所述天级轮询线程按照1天1次的时间周期进行轮询,将时间等级为时级对应的轮询级别定义为时级轮询,将轮询级别为时级轮询对应的轮询线程定义为时级轮询线程,时级轮询线程的轮询周期是1小时,所述时级轮询线程按照每小时1次的时间周期进行轮询,将时间等级为分级对应的轮询级别定义为分级轮询,将轮询级别为分级轮询对应的轮询线程定义为分级轮询线程,分级轮询线程的轮询周期是1分,所述分级轮询线程按照每分钟1次的时间周期进行轮询,将时间等级为秒级对应的轮询级别定义为秒级轮询,将轮询级别为秒级轮询对应的轮询线程定义为秒级轮询线程,秒级轮询线程的轮询周期是1秒,所述秒级轮询线程按照每秒1次的时间周期进行轮询,其中,天级轮询线程用于处理延时时长为天级的延时动作,时级轮询线程用于处理延时时长为时级的延时动作,分级轮询线程用于处理延时时长为分级的延时动作,秒级轮询线程用于处理延时时长为分级的延时动作。SOAR平台预先建立延时动作轮询进程,延时动作轮询进程包括多个轮询线程:天级轮询线程、时级轮询线程、分级轮询线程、秒级轮询线程。[0084]具体地,SOAR平台根据上述预设的时间等级和轮询等级的对应关系,确定所述待执行延时动作的延时时长对应的时间等级对应的轮询级别。[0085]S32、将所述待执行延时动作加入所述轮询级别对应的轮询线程中。[0086]具体实施时,SOAR平台将所述待执行延时动作加入所述轮询级别对应的轮询线程中,例如,延时任务的延时时长是2天2时10分10秒,则延时时长对应的时间等级是天级,其
10
CN 111367629 A
说 明 书
8/12页
对应的轮询级别为天级轮询,则将该延时任务中的待执行延时动作加入到天级轮询线程中。
[0087]具体实施时,在轮询过程中,当待执行延时动作的执行时间与轮询到所述待执行延时动作的时间的差值小于等于当前轮询线程对应的轮询周期时,需要进行轮询降级处理,按照如图5所示的流程进行轮询降级处理,可以包括以下步骤:[0088]S41、当确定执行时间与轮询到待执行延时动作的时间的差小于等于当前轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别。[0089]具体实施时,SOAR平台当确定执行时间与轮询到待执行延时动作的时间的差小于等于当前轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别。[0090]S42、将所述上下文信息更新到低一级的时间等级对应的数据表中。[0091]具体实施时,SOAR平台将所述待执行延时动作的上下文信息更新到所述低一级的时间等级对应的数据表中,并将所述数据表中的轮询级别更新为低一级的轮询级别。[0092]S43、将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中。[0093]具体实施时,SOAR平台将所述待执行延时动作更新到所述低一级的轮询级别对应的轮询线程中,例如,天级轮询线程中,当待执行延时动作的执行时间与轮询到所述待执行延时动作的时间的差值小于等于1天时,例如,所述差值为12时10分10秒,则将待执行延时动作的轮询级别降级为时级轮询,将所述待执行延时动作的上下文信息从时间等级为天级对应的数据表中删除,更新至时间等级为时级对应的数据表中,将所述待执行延时动作更新到时级轮询线程中,由时级轮询线程进行处理,轮询是否有到期动作,依次类推,当所述差值小于等于1小时时,则将待执行延时动作的轮询级别降级为分级轮询,将所述待执行延时动作的上下文信息从时间等级为时级对应的数据表中删除,更新至时间等级为分级对应的数据表中,将所述待执行延时动作更新到分级轮询线程中,由分级轮询线程进行处理,轮询是否有到期动作,当所述差值小于等于1分时,则将待执行延时动作的轮询级别降级为秒级轮询,将所述待执行延时动作的上下文信息从时间等级为分级对应的数据表中删除,更新至时间等级为秒级对应的数据表中,并将所述数据表中的轮询级别更新为:秒级轮询,将所述待执行延时动作更新到秒级轮询线程中,由秒级轮询线程进行处理,轮询是否有到期动作。
[0094]本发明实施例中,对轮询线程的降级处理由延时动作轮询进程启动一个新的线程进行处理,记为降级业务线程,这样,将降级处理和轮询处理分开在不同的线程处理,避免了其对轮询功能的阻塞,提高了延时任务的处理效率。[0095]进而,按照如图6所示的流程执行所述待执行延时动作,可以包括以下步骤:[0096]S51、当确定轮询到执行时间时,启动轮询进程中的业务线程。[0097]具体实施时,轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程,记为触发动作业务线程,SOAR平台当确定轮询到所述待执行延时动作的执行时间时,启动所述业务线程。[0098]S52、接收所述业务线程发送的触发执行所述待执行延时动作的请求。[0099]具体实施时,SOAR平台接收所述业务线程发送的触发执行所述待执行延时动作的请求,请求SOAR平台预设接口,所述预设接口可以为RPC接口,触发动作的执行,RPC接口通知SOAR平台执行所述待执行延时动作。
11
CN 111367629 A[0100]
说 明 书
9/12页
S53、根据所述待执行延时动作的上下文信息执行所述待执行延时动作。
[0101]具体实施时,SOAR平台根据所述待执行延时动作的上下文信息执行所述待执行延时动作后,返回结果,更新执行状态到相应数据表中。[0102]本发明实施例提供的延时任务处理方法中,SOAR平台当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息中包括所述待执行延时动作的执行时间,将所述待执行延时动作的上下文信息存储到预设数据库中,并将所述待执行延时动作加入预设轮询进程中,当轮询到所述待执行延时动作的时间为所述执行时间时,根据所述待执行延时动作的上下文信息执行所述待执行延时动作,本发明实施例提供的上述延时任务处理方法,将SOAR平台的剧本中的延时任务代理给独立的轮询进程管理,将需要延时执行的动作和剧本执行进程分离,从而,当有延时任务时,剧本执行进程无需挂起,其可以继续执行延时动作后的实时动作,由于剧本执行进程只处理实时的动作,可以在较短时间内完成并释放进程资源,节省了剧本执行进程的资源消耗,提高了剧本的执行效率。
[0103]基于同一发明构思,本发明实施例还提供了一种延时任务处理装置,由于上述延时任务处理装置解决问题的原理与延时任务处理方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。[0104]如图7所示,其为本发明实施例提供的延时任务处理装置的结构示意图,可以包括:
[0105]获取单元61,用于当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间;[0106]存储单元62,用于将所述上下文信息存储到预设数据库中;[0107]处理单元63,用于将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述执行时间时,根据所述上下文信息执行所述待执行延时动作。[0108]较佳地,所述上下文信息还包括所述延时任务的创建时间;[0109]所述存储单元62,具体用于根据所述创建时间和所述执行时间确定延时时长,所述延时时长等于所述执行时间减去所述创建时间;确定所述延时时长对应的时间等级;根据预设的时间等级和所述数据库中的数据表的对应关系,确定所述时间等级对应的数据表;将所述上下文信息存储到所述数据表中,所述数据表为所述数据库中建立的用于存储待执行延时动作相关参数的数据表。[0110]较佳地,所述轮询进程包括若干轮询线程;[0111]所述处理单元63,具体用于根据预设的时间等级和轮询级别的对应关系,确定所述时间等级对应的轮询级别;将所述待执行延时动作加入所述轮询级别对应的轮询线程中。
[0112]可选地,所述装置,还包括:[0113]降级单元,用于当确定所述执行时间与轮询到所述待执行延时动作的时间的差小于等于所述轮询线程对应的轮询周期时,将所述轮询级别降级为低一级的轮询级别;[0114]第一更新单元,用于将所述上下文信息更新到低一级的时间等级对应的数据表中;
[0115]第二更新单元,用于将所述待执行延时动作更新到所述低一级的轮询级别对应的
12
CN 111367629 A
说 明 书
10/12页
轮询线程中。
[0116]较佳地,所述轮询进程还包括业务线程,所述业务线程为用于触发执行所述待执行延时动作的线程;[0117]所述处理单元,具体用于当确定轮询到所述执行时间时,启动所述业务线程;接收所述业务线程发送的触发执行所述待执行延时动作的请求;根据所述上下文信息执行所述待执行延时动作。
[0118]基于同一技术构思,本发明实施例还提供了一种电子设备700,参照图8所示,电子设备700用于实施上述方法实施例记载的延时任务处理方法,该实施例的电子设备700可以包括:存储器701、处理器702以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如延时任务处理程序。所述处理器执行所述计算机程序时实现上述各个延时任务处理方法实施例中的步骤,例如图2所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如61。[0119]本发明实施例中不限定上述存储器701、处理器702之间的具体连接介质。本申请实施例在图8中以存储器701、处理器702之间通过总线703连接,总线703在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0120]存储器701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器701也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器701是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器701可以是上述存储器的组合。[0121]处理器702,用于实现如图2所示的一种延时任务处理方法,包括:[0122]所述处理器702,用于调用所述存储器701中存储的计算机程序执行如图2中所示的步骤S11、当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间,步骤S12、将所述上下文信息存储到预设数据库中,和步骤S13、将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述待执行延时动作的时间为所述执行时间时,根据所述上下文信息执行所述待执行延时动作。
[0123]本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。[0124]在一些可能的实施方式中,本发明提供的延时任务处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的延时任务处理方法中的步骤,例如,所述电子设备可以执行如图2中所示的步骤S11、当解析到延时任务时,获取所述延时任务中的待执行延时动作的上下文信息,所述上下文信息包括所述待执行延时动作的执行时间,步骤S12、将所述上下文信息存储到预设数据库中,和步骤S13、将所述待执行延时动作加入预设轮询进程中,当确定轮询到所述待执行延时动作
13
CN 111367629 A
说 明 书
11/12页
的时间为所述执行时间时,根据所述上下文信息执行所述待执行延时动作。[0125]所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0126]本发明的实施方式的用于延时任务处理的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0127]可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0128]可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0129]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。[0130]应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。[0131]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0132]本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
14
CN 111367629 A[0133]
说 明 书
12/12页
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0134]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0135]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0136]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0137]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
15
CN 111367629 A
说 明 书 附 图
1/4页
图1
图2
16
CN 111367629 A
说 明 书 附 图
2/4页
图3
图4
17
CN 111367629 A
说 明 书 附 图
3/4页
图5
图6
18
CN 111367629 A
说 明 书 附 图
4/4页
图7
图8
19
因篇幅问题不能全部显示,请点此查看更多更全内容