一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种任务处理方法、装置、电子设备及存储介质与流程

2022-04-06 21:21:22 来源:中国专利 TAG:


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


背景技术:

2.celery是一个简单、灵活且可靠的处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。celery的架构由三部分组成,消息中间件,任务执行单元和任务执行结果存储组成。远程字典服务(remote dictionary server,redis),是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、键值数据库,并提供多种语言的应用程序接口。
3.目前,在互联网行业,为了便于运维管理,通常会使用celery框架与redis相结合进行开发,但是celery框架中,使用redis作为任务存储后端,会经常出现任务丢失的情况,因此现有技术存在任务处理不稳定这一技术问题。


技术实现要素:

4.有鉴于此,本发明实施例提供一种任务处理方法、装置、电子设备及存储介质,能够解决任务处理不稳定的技术问题。
5.第一方面,本发明实施例提供一种任务处理方法,所述方法包括:响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。
6.可选的,所述从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,包括:从所述任务存储队列中取出所述任务,判断所述任务的是否为周期性任务,若所述任务为周期性任务,则将所述任务下发至任务下发队列;判断当前时刻是否为所述任务的执行时刻,若是,则从所述任务下发队列取出所述任务,并将所述任务下发至目标进程。
7.可选的,若所述任务为非周期性任务,则将所述任务直接下发至目标进程。
8.可选的,所述对所述目标进程对所述任务的执行过程进行监控,包括:判断所述任务是否执行成功,若执行成功,则确定所述任务的周期循环次数是否达到第一预设阈值;若达到第一预设阈值,则将所述任务删除;若未达到第一预设阈值,则将所述任务放回所述任务下发队列。
9.可选的,所述对所述目标进程对所述任务的执行过程进行监控,包括:若未执行成功,则判断所述任务未成功执行的次数是否达到第二预设阈值;若所述任务未成功执行的次数达到第二预设阈值,则将所述任务删除;若所述任务未成功执行的次数未达到第二预设阈值,则将所述任务放回所述任务下发队列。
10.可选的,所述对所述目标进程对所述任务的执行过程进行监控,包括:获取当前运
行进程的标识;将所述标识与进程标识集进行对比,获取缺失进程的标识;基于所述缺失进程的标识,启动所述缺失进程。
11.第二方面,本发明实施例提供一种任务处理装置,所述装置包括:存储模块,用于响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;下发模块,用于从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;监控模块,用于对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。
12.可选的,所述下发模块包括:第一判断单元,用于从所述任务存储队列中取出所述任务,判断所述任务的是否为周期性任务,若所述任务为周期性任务,则将所述任务下发至任务下发队列;第一下发单元,用于判断当前时刻是否为所述任务的执行时刻,若是,则从所述任务下发队列取出所述任务,并将所述任务下发至目标进程。
13.可选的,所述下发模块还包括:第二下发单元,用于若所述任务为非周期性任务,则将所述任务直接下发至目标进程。
14.可选的,所述监控模块包括:第一删除单元,用于判断所述任务是否执行成功,若执行成功,则确定所述任务的周期循环次数是否达到第一预设阈值;若达到第一预设阈值,则将所述任务删除;第一放回单元,用于若未达到第一预设阈值,则将所述任务放回所述任务下发队列。
15.可选的,所述监控模块还包括:第二判断单元,用于若未执行成功,则判断所述任务未成功执行的次数是否达到第二预设阈值;第二删除单元,用于若所述任务未成功执行的次数达到第二预设阈值,则将所述任务删除;第二放回单元,用于若所述任务未成功执行的次数未达到第二预设阈值,则将所述任务放回所述任务下发队列。
16.可选的,所述监控模块包括:获取单元,用于获取当前运行进程的标识;对比单元,用于将所述标识与进程标识集进行对比,获取缺失进程的标识;启动单元,用于基于所述缺失进程的标识,启动所述缺失进程。
17.第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的任一实施例提供的任务处理方法。
18.第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以执行本发明的任一实施例提供的任务处理方法。
19.本发明的实施例提供的任务处理方法、装置、电子设备及存储介质,能够响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。这样一来,通过对下发任务的执行过程进行监控,能够及时检测到任务的丢失情况,解决了任务处理不稳定这一技术问题。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
21.图1为本发明实施例提供的一种任务处理方法的流程示意图;
22.图2为本发明实施例提供的一种任务处理装置的结构示意图;
23.图3为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
24.下面结合附图对本发明实施例进行详细描述。
25.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
26.本发明实施例提供了一种任务处理方法,该方法可以由软件和/或硬件实现的任务处理装置执行,参见图1,该方法可以包括:
27.s11,响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中。
28.在计算机系统中,经常会用到多线程或者多进程编程,多线程和多进程编程过程中一个很重要的模式就是任务队列。任务队列是一种数据结构,该数据结构一般具有一个或者若干个任务的生产方(即任务的生产者)和任务的处理方(即任务的消费者),生产方会向任务队列中添加任务,处理方从任务队列中获取任务,在任务完成后,处理方可通过相关接口通知生产方该任务已经完成。
29.具体而言,在本步骤中,在处理前端(可以为web服务端)发送的任务添加请求时,任务的生产者将待添加任务存储至任务存储队列中,以便于在后续过程中将任务分配给相应的进程。任务可以是例如输入/输出、网络请求等,本发明实施例对此不作限定。
30.其中,任务存储可以为beanstalkd任务存储队列。
31.s12,从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;
32.在本步骤中,进程与任务之间存在对应关系,即每一任务都由其对应的进行执行,例如,任务a的消费者为进程1,则可以从任务存储队列中取出任务a,并将任务a下发至进程1,以便于进程1执行任务a。
33.s13,对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。
34.基于以上的举例,可以对进程1执行任务a的过程进行监控,例如,可以监控执行是否成功,是否出现任务丢失的情况,从而能够获得监控结果。
35.本发明的实施例提供的任务处理方法,能够响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。这样一来,通
过对下发任务的执行过程进行监控,能够及时检测到任务的丢失情况,解决了任务处理不稳定这一技术问题。
36.可选的,在本发明的一个实施例中,步骤s12中,所述从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,可以包括:从所述任务存储队列中取出所述任务,判断所述任务的是否为周期性任务,若所述任务为周期性任务,则将所述任务下发至任务下发队列;判断当前时刻是否为所述任务的执行时刻,若是,则从所述任务下发队列取出所述任务,并将所述任务下发至目标进程。
37.在本发明实施例中,对于步骤s11中放入任务存储队列中的任务,可以判断任务的种类为周期性任务还是非周期性任务,其中周期性任务是指每隔一段固定时间执行一次的任务,非周期任务为仅执行一次的任务。若判断结果是周期性任务,例如为每天8点执行的异常数据判断这一任务,执行周期为24小时,则检查当前时刻是否为任务执行时刻,若是,则将任务下发至目标进程,以便目标进程执行任务,若否,则不会执行任务下发操作。
38.可选的,在本发明的一个实施例中,若所述任务为非周期性任务,则将所述任务直接下发至目标进程。
39.具体而言,当从任务存储队列中取出的任务为非周期性任务时,则无需将任务放入任务下发队列中,直接对任务进行执行即可,并在执行完成之后将任务从任务存储队列中进行删除,可以对任务实现即时消费及时删除。
40.可选的,在本发明的一个实施例中,步骤s13中,所述对所述目标进程对所述任务的执行过程进行监控,可以包括:判断所述任务是否执行成功,若执行成功,则确定所述任务的周期循环次数是否达到第一预设阈值;若达到第一预设阈值,则将所述任务删除;若未达到第一预设阈值,则将所述任务放回所述任务下发队列。
41.具体而言,周期任务往往具有确定的执行次数,基于前述的举例,若每天8点执行的异常数据判断这一任务的执行次数为100次。在对任务进行执行时,如果任务执行成功,则判断执行次数是否达到100次,若达到,则表明任务执行次数已经完成,无需再执行,则将任务从任务下发队列中进行删除,若未达到100次,则需要继续对该任务进行执行,则可以将该任务放回至任务下发队列,以便于后续过程中下发至相应的进程。
42.可选的,在本发明的一个实施例中,步骤s13中,所述对所述目标进程对所述任务的执行过程进行监控,可以包括:若未执行成功,则判断所述任务未成功执行的次数是否达到第二预设阈值;若所述任务未成功执行的次数达到第二预设阈值,则将所述任务删除;若所述任务未成功执行的次数未达到第二预设阈值,则将所述任务放回所述任务下发队列。
43.在本发明实施例中,若目标进程对任务未执行成功,则只要任务的未成功执行的次数未超过预设次数,就可以继续对该任务进行执行,并在每次执行完毕后判断是否执行成功,若执行达到第二预设阈值且每次都执行失败,则将任务从下发队列中删除,不再执行。
44.具体的,在目标进程对任务执行未成功时,可以检查未成功执行的次数是否达到第二预设阈值,例如5次,如果执行未成功的次数未达到5次,则可以将任务放回至任务下发队列中,以便再次执行任务。如果执行未成功的次数达到5次,仍然未能成功执行,则将任务进行删除。这就保证了由于意外情况导致执行未成功时,可以继续对任务进行执行,从而提高了执行任务的成功率。
45.可选的,在本发明的一个实施例中,步骤s13中,所述对所述目标进程对所述任务的执行过程进行监控,可以包括:获取当前运行进程的标识;将所述标识与进程标识集进行对比,获取缺失进程的标识;基于所述缺失进程的标识,启动所述缺失进程。
46.在本发明实施例中,可以对当前运行的所有进程进行监控,获得各进程的标识,进程标识集表明了应当处于运行状态的所有进程,将两者进行对比,即可获得缺失的进程,即哪些进程应该处于运行状态,而目前并不处于运行状态,这种情况往往是由于系统出现意外而导致的,因此可以对上述的缺失进程进行启动,从而保证了各任务都能由相应的进程执行。
47.相应的,如图2所示,本发明的实施例还提供一种任务处理装置2,包括:
48.存储模块21,用于响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;
49.下发模块22,用于从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;
50.监控模块23,用于对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。
51.本发明的实施例提供的任务处理装置,能够响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。这样一来,通过对下发任务的执行过程进行监控,能够及时检测到任务的丢失情况,解决了任务处理不稳定这一技术问题。
52.可选的,下发模块22包括:
53.第一判断单元,用于从所述任务存储队列中取出所述任务,判断所述任务的是否为周期性任务,若所述任务为周期性任务,则将所述任务下发至任务下发队列;
54.第一下发单元,用于判断当前时刻是否为所述任务的执行时刻,若是,则从所述任务下发队列取出所述任务,并将所述任务下发至目标进程。
55.可选的,下发模块22还包括:
56.第二下发单元,用于若所述任务为非周期性任务,则将所述任务直接下发至目标进程。
57.可选的,监控模块23包括:
58.第一删除单元,用于判断所述任务是否执行成功,若执行成功,则确定所述任务的周期循环次数是否达到第一预设阈值;若达到第一预设阈值,则将所述任务删除;
59.第一放回单元,用于若未达到第一预设阈值,则将所述任务放回所述任务下发队列。
60.可选的,监控模块23还包括:
61.第二判断单元,用于若未执行成功,则判断所述任务未成功执行的次数是否达到第二预设阈值;
62.第二删除单元,用于若所述任务未成功执行的次数达到第二预设阈值,则将所述任务删除;
63.第二放回单元,用于若所述任务未成功执行的次数未达到第二预设阈值,则将所述任务放回所述任务下发队列。
64.可选的,监控模块23包括:
65.获取单元,用于获取当前运行进程的标识;
66.对比单元,用于将所述标识与进程标识集进行对比,获取缺失进程的标识;
67.启动单元,用于基于所述缺失进程的标识,启动所述缺失进程。
68.本发明实施例提供的任务处理装置与前述的任务处理方法属于同一发明构思,未在任务处理装置中描述的技术细节可参见前述的任务处理方法中的相关描述,在此不再赘述。
69.相应的,本发明实施例还提供一种电子设备,图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程。如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。
70.处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
71.该电子设备以多种形式存在,包括但不限于:
72.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
73.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
74.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
75.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
76.(5)其他具有数据交互功能的电子设备。
77.此外,本发明的实施例还提供一种计算机程序介质,该计算机程序介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施例提供的方法,因此也能实现相应的有益技术效果,前文已经进行了相应说明,此处不再赘述。
78.本发明的实施例提供的任务处理方法、装置、电子设备及存储介质,能够响应于前端的任务添加请求,根据所述任务添加请求,确定待添加的任务,将所述待添加的任务存储至任务存储队列中;从所述任务存储队列中取出所述任务,并将所述任务下发至目标进程,以使所述目标进程执行所述任务;对所述目标进程对所述任务的执行过程进行监控,以获得监控结果。这样一来,通过对下发任务的执行过程进行监控,能够及时检测到任务的丢失
情况,解决了任务处理不稳定这一技术问题。此外,本发明的实施例提供了对周期性任务的具体下发方式以及对非周期性任务的具体下发方式。进一步地,本发明实施例提供了对周期性任务以及非周期性任务的执行过程进行监控的具体方式。最后,本发明实施例还提供了一种在进程缺失的情况下,如何恢复缺失的进程的具体方法。
79.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
80.本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
81.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
82.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
83.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
84.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
85.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献