基于任务时间轮的异步任务抓取方法、装置及电子设备与流程

文档序号:36801086发布日期:2024-01-23 12:26阅读:16来源:国知局
基于任务时间轮的异步任务抓取方法、装置及电子设备与流程

本技术涉及数据处理,尤其涉及一种基于任务时间轮的异步任务抓取方法、一种基于任务时间轮的异步任务抓取装置、一种电子设备及一种计算机可读存储介质。


背景技术:

1、计算机领域中,任务指系统需要处理的事情,比如交易处理、消息发送、邮件发送、短信发送均可抽象为任务,任务通常由相关的一组属性来描述。基于对任务的处理方式包括同步处理和异步处理。其中,同步处理指队列中各任务是依次执行的,只有前一个任务处理完成,才处理下一个任务;异步处理是相对同步处理而言的,异步处理指任务请求者提交任务后立即返回,主机完成任务处理后,通过回调、消息等方式通知请求者任务处理结果。

2、目前的企业信息系统中,存在一类不要求系统实时响应的异步任务,例如消息发送、邮件发送、短信发送、导入导出、批量打印等。目前,这类异步任务的处理流程如下:用户在客户端发起请求,前端服务器接收请求后转发企业服务总线;企业服务总线接收请求后,经过负载均衡,将请求发送到一台后端服务器;后端服务器接收请求后生成一条异步任务,然后立刻响应前端请求;异步任务处理进程从异步任务池中获取一组任务进行处理;异步任务处理进程通过消息机制通知客户处理结果。

3、但是,现有的异步任务处理方法通常是与特定产品紧密耦合的,适用性低,任务并发导致任务处理效率低,且通常需要引入第三方组件,增加部署单元,使用成本高。


技术实现思路

1、本技术提供一种基于任务时间轮的异步任务抓取方法、装置及电子设备,用以解决现有技术适用性低、任务处理效率低、使用成本高的问题。

2、本技术的第一方面,提供一种基于任务时间轮的异步任务抓取方法,包括:

3、响应于至少一个客户端的异步任务处理请求,确定与各客户端对应的任务池,每个任务池包括至少一条异步任务;

4、依据所述至少一个客户端确定任务处理周期,所述任务处理周期包括多个处理时刻;

5、在每个任务处理周期内,按照各处理时刻依次执行每个任务池中所有异步任务的轮转操作,以使得在每个处理时刻,各异步任务均处于与上个处理时刻不同的任务池内;

6、在对应处理时刻,从与所述至少一个客户端对应的任务池中抓取与所述至少一个客户端的异步任务处理请求对应的异步任务。

7、可选地,确定与各客户端对应的任务池,包括:

8、判断现有任务池中是否存在与当前客户端对应的任务池;

9、若现有任务池中存在与当前客户端对应的任务池,则在现有任务池中不存在当前客户端的异步任务处理请求所请求的异步任务的情况下,将当前客户端的异步任务处理请求所请求的异步任务放至与当前客户端对应的任务池中;

10、若现有任务池中不存在与当前客户端对应的任务池,则新建一个与当前客户端对应的任务池,以使得每个客户端对应一个任务池,且各客户端对应的任务池不同。

11、可选地,依据所述至少一个客户端确定任务处理周期,包括:

12、确定所述至少一个客户端对应的任务池的数量,将任务处理周期划分为多个处理时刻,以使得所述任务处理周期内的处理时刻数量与任务池的数量相同。

13、可选地,在每个任务处理周期内,按照各处理时刻依次执行每个任务池中所有异步任务的轮转操作,包括:

14、在每个任务处理周期内的每个处理时刻后,针对每个任务池:

15、按照任务池的排列顺序,将当前任务池中的所有异步任务轮转至当前任务池的下一个相邻任务池中,若当前任务池为任务池的排列顺序中的最后一个任务池,将当前任务池中的所有异步任务轮转至任务池的排列顺序中的第一个任务池。

16、可选地,在每个任务处理周期内,按照各处理时刻依次执行每个任务池中所有异步任务的轮转操作,包括:

17、确定各异步任务的优先级,所述优先级至少包括第一优先级及第二优先级;

18、在连续任务处理周期内的每个处理时刻后,针对每个任务池:

19、按照任务池的排列顺序,将当前任务池中所有具有第一优先级的异步任务轮转至当前任务池的下一个相邻任务池中,若当前任务池为任务池的排列顺序中的最后一个任务池,将当前任务池中所有具有第一优先级的异步任务轮转至任务池的排列顺序中的第一个任务池;以及

20、在连续任务处理周期内的每n个处理时刻后,针对每个任务池:

21、按照任务池的排列顺序,将当前任务池中所有具有第二优先级的异步任务轮转至当前任务池的下一个相邻任务池中,若当前任务池为任务池的排列顺序中的最后一个任务池,将当前任务池中所有具有第二优先级的异步任务轮转至任务池的排列顺序中的第一个任务池。

22、可选地,确定所述任务处理周期中的多个处理时刻中的至少一个处理时刻为缓冲时刻;在对应处理时刻,从与所述至少一个客户端对应的任务池中抓取与所述至少一个客户端的异步任务处理请求对应的异步任务,包括:

23、若当前处理时刻为缓冲时刻,不执行异步任务的抓取操作;

24、若当前处理时刻不为缓冲时刻,从与所述至少一个客户端对应的任务池中抓取与所述至少一个客户端的异步任务处理请求对应的异步任务。

25、可选地,确定所述任务处理周期中的多个处理时刻中的至少一个处理时刻为缓冲时刻,包括:

26、确定连续任务处理周期中的第偶数个处理时刻为缓冲时刻。

27、本技术的第二方面,提供一种基于任务时间轮的异步任务抓取装置,包括:

28、请求接收模块,被配置为响应于至少一个客户端的异步任务处理请求,确定与各客户端对应的任务池,每个任务池包括至少一条异步任务;

29、处理周期确定模块,被配置为依据所述至少一个客户端确定任务处理周期,所述任务处理周期包括多个处理时刻;

30、轮转模块,被配置为在每个任务处理周期内,按照各处理时刻依次执行每个任务池中所有异步任务的轮转操作,以使得在每个处理时刻,各异步任务均处于与上个处理时刻不同的任务池内;

31、任务抓取模块,被配置为在对应处理时刻,从与所述至少一个客户端对应的任务池中抓取与所述至少一个客户端的异步任务处理请求对应的异步任务。

32、本技术的第三方面,提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

33、所述存储器存储计算机执行指令;

34、所述处理器执行所述存储器存储的计算机执行指令,以实现如上述的方法。

35、本技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述的方法。

36、本技术的第五方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。

37、本技术通过建立客户端与任务池的对应关系,以及通过建立各异步任务在不同任务池中的轮转规则,以使的每条异步任务在每个处理时刻都处于不同的任务池中,这样,在每个处理时刻,对异步任务进行抓取时,能够保证每条异步任务在每个处理时刻只能针对一个客户端进行抓取、处理,从而能够有效提高任务处理效率,同时无需额外引入第三方组件,使用成本低,适用性强。

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