任务执行方法及装置、存储介质、电子装置与流程

文档序号:26753469发布日期:2021-09-25 03:13阅读:85来源:国知局
任务执行方法及装置、存储介质、电子装置与流程

1.本发明实施例涉及通信领域,具体而言,涉及一种任务执行方法及装置、存储介质、电子装置。


背景技术:

2.在预约定时应用中,有大量的需要延迟执行的一次性任务,延迟时间根据业务各不相同,需要精确到秒级别;任务产生、任务延迟调度、及任务消费各个环节的并发量都非常大。当前开发框架中,使用quartz实现了一次性任务的调度需求,但存在以下缺点:
3.(1)高并发创建任务时,该框架依赖数据库悲观锁,导致性能较差,不能满足高并发创建任务的业务需要;
4.(2)一次性任务创建后,会被持久化存储到quartz数据库中,随着时间推移,会积累许多无效数据,性能会越来越慢;
5.(3)高并发消费时,quartz的多节点并不能实现集群应有的能力,严重依赖数据库的查询能力,性能较差,不能满足高并发消费的业务需要。
6.针对上述技术问题,相关技术中尚未提出有效的解决方案。


技术实现要素:

7.本发明实施例提供了一种任务执行方法及装置、存储介质、电子装置,以至少解决相关技术中对延迟任务的执行的问题。
8.根据本发明的一个实施例,提供了一种任务执行方法,包括:确定目标任务的执行时间,其中,执行时间为任意指定的时间;基于上述执行时间将上述目标任务排列至延迟队列中,其中,上述延迟队列用于排序上述目标任务;在上述目标任务的执行时间到达的情况下,利用调度线程从上述延迟队列中调度上述目标任务,以指示目标设备执行上述目标任务。
9.根据本发明的另一个实施例,提供了一种任务执行系统,包括:延迟队列,用于按照目标任务的执行时间将上述目标任务排列至上述延迟队列中,其中,执行时间为任意指定的时间;调度线程,用于在上述目标任务的执行时间到达的情况下,从上述延迟队列中调度上述目标任务;消费线程,用于将上述目标任务目标发送至目标设备,其中,上述目标设备用于执行上述目标任务。
10.在一个示例性实施例中,还包括:控制部件,用于确定上述目标任务的执行时间,并用于将上述目标任务发送至上述延迟队列中。
11.在一个示例性实施例中,上述控制部件,还用于设置原始队列中的排列规则,得到上述延迟队列,其中,上述排列规则包括倒序排列。
12.根据本发明的又一个实施例,还提供了一种任务执行装置,包括:第一确定模块,用于确定目标任务的执行时间,其中,执行时间为任意指定的时间;第一排列模块,用于基于上述执行时间将上述目标任务排列至延迟队列中,其中,上述延迟队列用于排序上述目
标任务;第一调度模块,用于在上述目标任务的执行时间到达的情况下,利用调度线程从上述延迟队列中调度上述目标任务,以指示目标设备执行上述目标任务。
13.在一个示例性实施例中,上述第一确定模块,包括:第一接收单元,用于接收用户发送的任务指令;第一确定单元,用于从上述任务指令中确定上述目标任务的执行时间;第二确定单元,用于确定上述当前时间与上述目标任务的执行时间的时间差,得到上述执行时间。
14.在一个示例性实施例中,上述装置还包括:第一设置模块,用于基于上述执行时间将上述目标任务排列至延迟队列中之前,确定上述延迟队列,其中,第一设置模块包括:第一设置单元,用于设置原始队列中的排列规则,得到上述延迟队列,其中,上述排列规则包括倒序排列。
15.在一个示例性实施例中,上述第一调度模块,包括:第一发送模块,用于利用上述消费线程将从上述调度线程中调度的上述目标任务发送至上述目标设备中,以指示上述目标设备执行上述目标任务。
16.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
17.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
18.通过本发明,通过确定目标任务的执行时间,其中,执行时间为任意指定的时间;基于执行时间将目标任务排列至延迟队列中,其中,延迟队列用于排序目标任务;在目标任务的执行时间到达的情况下,利用调度线程从延迟队列中调度目标任务,以指示目标设备执行目标任务。实现了将延迟任务进行统一调配的目的。因此,可以解决对延迟任务的执行的问题,达到高效执行延迟任务的效果。
附图说明
19.图1是本发明实施例的一种延迟任务执行方法的移动终端的硬件结构框图;
20.图2是根据本发明实施例的延迟任务执行方法的流程图;
21.图3是根据本发明实施例的延迟队列的示意图;
22.图4是根据本发明实施例的延迟任务执行系统的结构示意图;
23.图5是根据本发明实施例的任务执行装置的结构框图。
具体实施方式
24.下文中将参考附图并结合实施例来详细说明本发明的实施例。
25.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
26.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种延迟任务执行方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)
处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
27.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的延迟任务执行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
28.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
29.在本实施例中提供了一种延迟任务执行方法,图2是根据本发明实施例的延迟任务执行方法的流程图,如图2所示,该流程包括如下步骤:
30.步骤s202,确定目标任务的执行时间,其中,执行时间为任意指定的时间;
31.步骤s204,基于执行时间将目标任务排列至延迟队列中,其中,延迟队列用于排序目标任务;
32.步骤s206,在目标任务的执行时间到达的情况下,利用调度线程从延迟队列中调度目标任务,以指示目标设备执行目标任务。
33.其中,上述步骤的执行主体可以为终端等,但不限于此。
34.本实施例包括但不限于应用于大量高并发创建、调度、消费任务,需要一种延迟任意时间,支持高并发生产和消费,保证生产及消费进程级安全的延迟队列的场景中。
35.在本实施例中,例如,确定的目标任务包括“在2个小时之后打开空调”,将该任务添加至延迟队列中,按照时间进行排序等待执行。在2个小时时间到达后,调度线程从延迟队列中调度该任务至目标设备进行执行。
36.在本实施例中,延迟队列具备中转的作用,解耦生产者和消费者。例如,如果需要延迟执行任务,需要在消息队列的基础上增加延迟消费能力,所有的消息都可以在用户设置的延迟时间后被消费。延迟队列是在消息队列基础上,增加了延迟消息消费时间功能的一种特殊的消息队列。
37.在本实施例中,延迟队列可以根据延迟时间调度消息、消费消息、支持高并发生产、消费消息。在分布式场景下,可以保证消息生产、消费的安全。
38.本实施例可以基于redis数据结构zset实现,使用延迟时间作为zset的score倒序排列,支持秒级延迟精度,可以设置任意延迟时长;支持高并发,进程级安全消费的延迟队列。
39.通过上述步骤,通过确定目标任务的执行时间;基于执行时间将目标任务排列至延迟队列中,其中,延迟队列用于排序目标任务;在目标任务的执行时间到达的情况下,利用调度线程从延迟队列中调度目标任务,以指示目标设备执行目标任务。实现了将延迟任务进行统一调配的目的。因此,可以解决对延迟任务的执行的问题,达到高效执行延迟任务的效果。
40.在一个示例性实施例中,确定目标任务的执行时间,包括:
41.s1,接收用户发送的任务指令;
42.s2,从任务指令中确定目标任务的执行时间;
43.s3,确定当前时间与目标任务的执行时间的时间差,得到执行时间。
44.在本实施例中,任务指令通过数据接口发送至延迟队列中。延迟队列中的任务均按照时间顺序进行排序。
45.在一个示例性实施例中,基于执行时间将目标任务排列至延迟队列中之前,方法还包括:确定延迟队列,其中,确定延迟队列包括:
46.s1,设置原始队列中的排列规则,得到延迟队列,其中,排列规则包括倒序排列,如图3所示。
47.在本实施例中,延迟队列中的任务可以并发执行,例如,在同一时间同时打开空调和热水器。
48.在一个示例性实施例中,在目标任务的执行时间到达的情况下,利用调度线程从延迟队列中调度目标任务,包括:
49.s1,利用消费线程将从调度线程中调度的目标任务发送至目标设备中,以指示目标设备执行目标任务。
50.在本实施例中,消费线程与调度线程连接,从调度线程中获取目标任务,下发至目标设备进行执行。
51.在本实施例中提供了一种延迟任务执行系统,图4是根据本发明实施例的延迟任务执行系统的结构示意图,如图4所示,该系统包括:
52.延迟队列,用于按照目标任务的执行时间将目标任务排列至延迟队列中,其中,执行时间为任意指定的时间;
53.调度线程,用于在目标任务的执行时间到达的情况下,从延迟队列中调度目标任务;
54.消费线程,用于将目标任务目标发送至目标设备,其中,目标设备用于执行目标任务。
55.本实施例是基于redis中间件的zset数据结构。在zset中,使用用户设置的延迟时间作为socre进行倒序排列。
56.本实施例使用线程池持续,并发从zset中拉取满足延迟时间的数据,并推送至消费线程池。使用消费线程池,针对需要消费的任务,让开发者实现消费接口,并发消费任务。
57.在本实施例中,使用调度、消费的两个独立线程池,解耦延迟调度和消费,提高延迟队列的性能及吞吐量。
58.在一个示例性实施例中,上述系统还包括:
59.控制部件,用于确定目标任务的执行时间,并用于将目标任务发送至延迟队列中。
60.在一个示例性实施例中,控制部件,还用于设置原始队列中的排列规则,得到延迟队列,其中,排列规则包括倒序排列。
61.综上所述,本实施例按照延迟队列相关api,快速创建、消费任务消息,可以任意设置延迟时间;支持高并发创建、调度、消费任务消息;高并发场景下,保证进程级创建、消费任务消息的安全。
62.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
63.在本实施例中还提供了一种任务执行装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
64.图5是根据本发明实施例的任务执行装置的结构框图,如图5所示,该装置包括:
65.第一确定模块52,用于确定目标任务的执行时间,其中,执行时间为任意指定的时间;
66.第一排列模块54,用于基于执行时间将目标任务排列至延迟队列中,其中,延迟队列用于排序目标任务;
67.第一调度模块56,用于在目标任务的执行时间到达的情况下,利用调度线程从延迟队列中调度目标任务,以指示目标设备执行目标任务。
68.在一个示例性实施例中,上述第一确定模块,包括:
69.第一接收单元,用于接收用户发送的任务指令;
70.第一确定单元,用于从上述任务指令中确定上述目标任务的执行时间;
71.第二确定单元,用于确定上述当前时间与上述目标任务的执行时间的时间差,得到上述执行时间。
72.在一个示例性实施例中,上述装置还包括:
73.第一设置模块,用于基于上述执行时间将上述目标任务排列至延迟队列中之前,确定上述延迟队列,其中,第一设置模块包括:第一设置单元,用于设置原始队列中的排列规则,得到上述延迟队列,其中,上述排列规则包括倒序排列。
74.在一个示例性实施例中,上述第一调度模块,包括:
75.第一发送模块,用于利用上述消费线程将从上述调度线程中调度的上述目标任务发送至上述目标设备中,以指示上述目标设备执行上述目标任务。
76.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
77.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步
骤。
78.在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。
79.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read

only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
80.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
81.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
82.在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。
83.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
84.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
85.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1