一种分布式任务处理方法、装置和电子设备与流程

文档序号:27763394发布日期:2021-12-04 00:18阅读:114来源:国知局
一种分布式任务处理方法、装置和电子设备与流程

1.本发明涉及计算机技术领域,尤其涉及一种分布式任务处理方法、装置和电子设备。


背景技术:

2.随着计算机技术和互联网技术的迅速发展,用户可以很容易地接入互联网,并向互联网上的服务器提交任务,服务器则可以通过执行用户提交的任务,为用户提供相应的服务。对于一个互联网产品而言,往往会被大量的用户在同一时间段使用。用户在使用互联网产品时所发出的任务请求指令,服务器通常会将任务请求指令对应的任务提交到一个抽象的队列,将任务堆积起来,然后通过一些调度策略,从队列中选取某个具体任务并触发执行。
3.当存在海量数据需要即时处理时,仅仅使用简单的调度策略难以实现对海量数据的快速处理,从而导致任务执行速度较慢,不能及时满足用户需求。


技术实现要素:

4.本发明提供了一种分布式任务处理方法、装置和电子设备,用以加快任务执行速度。
5.本说明书实施例提供一种分布式任务处理方法,包括:
6.获取待处理任务;
7.匹配与所述待处理任务相对应的调度策略;
8.确定与所述待处理任务相匹配的任务调度接口;
9.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理。
10.优选的,在所述获取待处理任务之后,包括:
11.获取多个任务集群,所述多个任务集群至少包括第一任务集群、第二任务集群;
12.当所述第一任务集群无法正常处理所述待处理任务时,将所述待处理任务传输至所述第二任务集群。
13.优选的,所述调度策略包括:简单触发策略;
14.所述接口方法包括:第一接口方法;
15.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理,包括:
16.当所述调度策略为简单触发策略时,按照预设时间调度所述第一接口方法对所述待处理任务进行调度处理。
17.优选的,所述调度策略包括:持续分发策略;
18.所述接口方法包括:第二接口方法、第三接口方法;
19.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所
述待处理任务进行处理,包括:
20.当所述调度策略为持续分发策略时,循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据;
21.将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理,直至所述待处理任务完全处理。
22.优选的,所述调度策略包括:一次性分发策略;
23.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理,包括:
24.当所述调度策略为一次性分发策略时,调用所述第二接口方法获取所述待处理任务中的预设数量待处理数据;
25.将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理。
26.优选的,所述循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据,包括:
27.当循环调用所述第二接口方法的次数达到预设调用次数时,结束循环。
28.本说明书实施例还提供一种分布式任务处理装置,包括:
29.信息获取模块,用于获取待处理任务;
30.策略匹配模块,用于匹配与所述待处理任务相对应的调度策略;
31.接口匹配模块,用于确定与所述待处理任务相匹配的任务调度接口;
32.任务处理模块,用于根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理。
33.优选的,在所述获取待处理任务之后,包括:
34.任务集群获取模块,用于获取多个任务集群,所述多个任务集群至少包括第一任务集群、第二任务集群;
35.判断模块,用于当所述第一任务集群无法正常处理所述待处理任务时,将所述待处理任务传输至所述第二任务集群。
36.一种电子设备,其中,该电子设备包括:
37.处理器以及存储计算机可执行程序的存储器,所述可执行程序在被执行时使所述处理器执行上述任一项所述的方法。
38.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现上述任一项所述的方法。
39.本发明可以根据任务需求采用不同的执行策略对待处理任务进行调度处理,利用分布式并行执行的方式,加快任务处理速度。
附图说明
40.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
41.图1为本说明书实施例提供的一种分布式任务处理方法的原理示意图;
42.图2为本说明书实施例提供的一种分布式任务处理装置的结构示意图;
43.图3为本说明书实施例提供的一种电子设备的结构示意图;
44.图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
具体实施方式
45.现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
46.在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
47.在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
48.附图中所示的图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
49.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
50.术语“和/或”或者“及/或”包括相关联的列出项目中的任一个或多者的所有组合。
51.参照图1为本说明书实施例提供的一种分布式任务处理方法的原理示意图,包括:
52.s101:获取待处理任务;
53.在本发明较佳的实施例中,服务器接收到用户提交的各种请求,服务器会将根据这些请求创建一个个待处理任务存储在任务集群中,系统会根据当前任务量、和/或任务类型、和/或管理端需求等,采用相应的策略对待处理的任务进行任务处理,以加快对任务的处理速度。
54.s102:匹配与所述待处理任务相对应的调度策略;
55.在本发明较佳的实施例中,可以根据任务类型匹配相应的调度策略,根据匹配的策略调度任务集群中的待处理任务,并执行任务处理;也可以根据管理端需求或任务类型等,匹配与待处理任务相对应的调度策略,实现快速对待处理任务的调度,缓解任务集群中任务的负载压力,同时提供多种调度策略,有利于实现对不同的待处理任务的快速处理。
56.s103:确定与所述待处理任务相匹配的任务调度接口;
57.在本发明较佳的实施例中,可以根据待处理任务的任务名称匹配任务调度接口,也可以根据待处理任务的任务类型匹配任务调度接口,在确定与待处理任务相匹配的任务调度接口时,不限于上述所描述的任务名称匹配、任务类型匹配等方式。采用多样化的匹配方式能够快速确认需要调用的接口,使得各个接口所处理的任务是相对应匹配的,不会存在接口无法处理的任务。
58.s104:根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理。
59.在本发明较佳的实施例中,不同的调度策略将会调度任务调度接口中不同的接口方法,通过调度的接口方法实现对待处理任务的调度及分发,通过多种调度策略实现对不同任务类型的快速处理,解决海量数据跑批任务场景。
60.进一步地,在所述获取待处理任务之后,包括:
61.获取多个任务集群,所述多个任务集群至少包括第一任务集群、第二任务集群;
62.当所述第一任务集群无法正常处理所述待处理任务时,将所述待处理任务传输至所述第二任务集群。
63.在本发明较佳的实施例中,任务集群可以设置多个,例如公司有n个机房,这里的任务集群就是n个,多机房就为了提高机房的高可用性,当运行的机房因网络情况无法服务了,那么另一个机房可以替代当前无法服务的机房,为公司提供正常服务。
64.进一步地,所述调度策略包括:简单触发策略;
65.所述接口方法包括:第一接口方法;
66.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理,包括:
67.当所述调度策略为简单触发策略时,按照预设时间调度所述第一接口方法对所述待处理任务进行调度处理。
68.在本发明较佳的实施例中,当调度策略为简单触发策略时,系统会在设置好的时间点触发调动客户端任务调度接口中的执行示例方法,通过执行示例方法对待处理任务进行处理。因接口的命名是固定的,所以当调度策略为简单触发策略时,只会调用这个方法名的方法完成待处理任务的处理。通过上述方式快速实现对简单任务的快速处理,其中,执行示例方法对应第一接口方法。
69.进一步地,所述调度策略包括:持续分发策略;
70.所述接口方法包括:第二接口方法、第三接口方法;
71.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理,包括:
72.当所述调度策略为持续分发策略时,循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据;
73.将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理,直至所述待处理任务完全处理。
74.在本发明较佳的实施例中,当调度策略为持续分发策略时,系统会在设置好的时间点循环调动客户端任务调度接口中的选择任务方法,每次通过选择任务方法在任务集群中调用预设数量待处理数据,再根据分发处理线程数,将所述预设数量待处理数据分批分发至多个任务处理线程,然后任务处理线程调用执行接口方法处理上述待处理数据,循环上述过程,直至任务集群中采用持续分发策略的任务完全被处理后,停止任务处理。通过上述方式实现对任务数据的批量处理,其中,选择任务方法对应第二接口方法,执行接口方法对应第三接口方法。
75.在本发明较佳的实施例中,在将待处理数据分批分发至多个任务处理线程时,会对待处理数据进行分组,例如,有两个线程,待处理数据包含1、2、3三个任务项,那么可以将任务项1和2分给其中一个线程,任务项3分给另一个线程,尽可能的均匀分配各个任务项至各个处理线程,防止单个线程任务堆积较多,从而影响待处理任务的处理速度。
76.进一步地,所述调度策略包括:一次性分发策略;
77.根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理,包括:
78.当所述调度策略为一次性分发策略时,调用所述第二接口方法获取所述待处理任务中的预设数量待处理数据;
79.将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理。
80.在本发明较佳的实施例中,当调度策略为一次性分发策略时,系统会在设置好的时间点只调用一次任务选择方法,于任务集群中查询出预设数量的待处理数据,再根据分发处理线程数,将所述预设数量待处理数据分批分发至多个任务处理线程,然后任务处理线程调用执行接口方法处理上述待处理数据,至此该策略执行结束。通过分布式处理方法能够一次性处理预设数量的待处理数据,在对待处理数据进行处理时,增加了更多的可选择性,更有针对性的对不同的待处理任务进行处理。
81.在本发明较佳的实施例中,由于待处理任务的多样性,在管理端不自主进行调度策略选择时,系统为根据待处理任务的类型、复杂程度等,为待处理任务匹配合适的调度策略,以实现对待处理任务的快速处理,及时消化任务集群中的数据。
82.进一步地,所述循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据,包括:
83.当循环调用所述第二接口方法的次数达到预设调用次数时,结束循环。
84.在本发明较佳的实施例中,在采用持续分发策略时,循环调用及处理的过程并不是无限制的,当循环调用的次数达到了预设的调用次数,即使此时还有任务没有处理,也会停止处理任务。例如预设的调用次数阈值为10,当调用选择任务方法的达到了第十次,此时任务集群中仍存在需要采用持续分发策略进行处理的任务时,系统会停止调用选择任务方法,暂缓对任务的处理。通过上述方式能够避免系统运行时间过长导致的软硬件的损耗,同时给系统一个缓冲时间,保证系统工作正常。
85.在本发明较佳的实施例中,在调度策略上提供了多种可选择性,针对性的对不同类型的待处理任务进行处理,加快了对海量数据的处理速度。在调用选择任务方法时,若在任务集群中查询不到待处理数据,则休眠预设时间,并在休眠时间到达后结束本次任务;在每次调用执行接口方法后,管理端可以设置休眠时间,用以给用户一个缓冲的时间配置,确定在执行一次调度后是否需要休息一段时间。例如:在时间为10:00:00时该调度执行时间为一分钟一次,并且该调度执行1秒内完成,当管理端在这里设置休息30秒,那么调度的下一次执行时间为:10:01:30,如果没有配置休息时间,则调度的下一次执行时间为为:10:01:00。
86.在本发明较佳的实施例中,还可以利用触发日志的方式监控周期性的待处理任务是否存在未执行、漏执行的情况。
87.在本发明较佳的实施例中,通过业务层bean名称确定调度的接口方法,其中接口方法包括但不限于执行示例方法、选择任务方法、执行接口方法。接口方法是由不同的函数构建而成,每个方法实现的实质时执行相对应的函数,最终实现对数据的处理。
88.在本发明较佳的实施例中,步骤1,将产生的待处理任务存储至任务集群中;步骤2,为待处理任务匹配相应的调度策略,所述调度策略包括简单触发策略、持续分发策略、一次性分发策略;步骤3,根据不同的策略调用任务调度接口中不同的接口方法处理待处理任务。
89.步骤1可以参考上述实施例中对“获取待处理任务;获取多个任务集群,所述多个任务集群至少包括第一任务集群、第二任务集群;当所述第一任务集群无法正常处理所述待处理任务时,将所述待处理任务传输至所述第二任务集群。”的描述,步骤2可以参考上述实施例中对“匹配与所述待处理任务相对应的调度策略;确定与所述待处理任务相匹配的任务调度接口;”的描述,步骤3可以参考上述实施例中对“当所述调度策略为简单触发策略时,按照预设时间调度所述第一接口方法对所述待处理任务进行调度处理;当所述调度策略为持续分发策略时,循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据;将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理,直至所述待处理任务完全处理;当所述调度策略为一次性分发策略时,调用所述第二接口方法获取所述待处理任务中的预设数量待处理数据;将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述第二预设数量待处理数据进行处理;”的描述。
90.图2为本说明书实施例提供的一种分布式任务处理装置的结构示意图,包括:
91.信息获取模块201,用于获取待处理任务;
92.策略匹配模块202,用于匹配与所述待处理任务相对应的调度策略;
93.接口匹配模块203,用于确定与所述待处理任务相匹配的任务调度接口;
94.任务处理模块204,用于根据所述调度策略调度所述任务调度接口中的接口方法,通过所述接口方法对所述待处理任务进行处理。
95.在所述获取待处理任务之后,包括:
96.任务集群获取模块,用于获取多个任务集群,所述多个任务集群至少包括第一任务集群、第二任务集群;
97.判断模块,用于当所述第一任务集群无法正常处理所述待处理任务时,将所述待处理任务传输至所述第二任务集群。
98.进一步地,任务处理模块204包括:
99.第一执行单元,用于当所述调度策略为简单触发策略时,按照预设时间调度所述第一接口方法对所述待处理任务进行调度处理;
100.第二执行单元,用于当所述调度策略为持续分发策略时,循环调用所述第二接口方法获取所述待处理任务中预设数量待处理数据;将所述预设数量待处理数据分批分发至多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理,直至所述待处理任务完全处理;
101.第三执行单元,用于当所述调度策略为一次性分发策略时,调用所述第二接口方法获取所述待处理任务中的预设数量待处理数据;将所述预设数量待处理数据分批分发至
多个任务处理线程,多个任务处理线程调用所述第三接口方法对所述预设数量待处理数据进行处理。
102.进一步地,第二执行单元包括第二执行子单元,用于当循环调用所述第二接口方法的次数达到预设调用次数时,结束循环。
103.本发明实施例的装置的功能已经在上述的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
104.基于同一发明构思,本说明书实施例还提供一种电子设备。
105.下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
106.参照图3为本说明书实施例提供的一种电子设备的结构示意图。下面参照图3来描述根据本发明该实施例的电子设备300。图3显示的电子设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
107.如图3所示,电子设备300以通用计算设备的形式表现。电子设备300的组件可以包括但不限于:至少一个处理单元310、至少一个存储单元320、连接不同装置组件(包括存储单元320和处理单元310)的总线330、显示单元340等。
108.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图1所示的步骤。
109.所述存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(rom)3203。
110.所述存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作装置、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
111.总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
112.电子设备300也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管图3中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid装置、磁带驱动器以及数据备份存储装置等。
113.通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发
明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。当所述计算机程序被一个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:如图1所示的方法。
114.参照图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
115.实现图1所示方法的计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
116.所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
117.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
118.综上所述,本发明可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)等通用数据处理设备来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
119.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
120.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
121.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1