任务处理方法及终端设备技术

技术编号:20362736 阅读:10 留言:0更新日期:2019-02-16 16:28
本发明专利技术适用于数据处理技术领域,提供了任务处理方法、终端设备以及计算机可读存储介质,包括:识别客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至消息队列;在执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。本发明专利技术通过对参数类型与预设类型相同的Celery任务进行聚合处理,提升了Celery任务的处理效率。

【技术实现步骤摘要】
任务处理方法及终端设备
本专利技术属于数据处理
,尤其涉及任务处理方法、终端设备以及计算机可读存储介质。
技术介绍
随着信息技术的发展,在现今的企业和单位中,需要处理的数据的数量级通常较高,数量级可达到千万级甚至亿级。为了能对大量数据进行有效处理,可应用分布式异步消息任务队列Celery,通过执行Celery任务的形式完成数据处理。在Celery任务的执行过程中,需要从数据库中获取Celery任务所需的参数,并对参数进行计算得到执行结果。而在现有技术中,往往是针对每个Celery任务,单独从数据库中调用参数,调用效率低,并且在待执行的Celery任务的数量较多时,容易导致处理延迟长。故现有技术中Celery任务的执行效率低。
技术实现思路
有鉴于此,本专利技术实施例提供了任务处理方法、终端设备以及计算机可读存储介质,以解决现有技术中Celery任务的执行效率低的问题。本专利技术实施例的第一方面提供了一种任务处理方法,应用于Celery系统,所述Celery系统包括客户端、消息队列和执行进程,所述任务处理方法包括:识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列;在所述执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。本专利技术实施例的第二方面提供了一种终端设备,应用于Celery系统,所述Celery系统包括客户端、消息队列和执行进程,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列;在所述执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。本专利技术实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列;在所述执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。本专利技术实施例与现有技术相比存在的有益效果是:本专利技术实施例应用于包括客户端、消息队列和执行进程的Celery系统中,通过确定客户端发送的Celery任务中的参数类型,并在参数类型与预设类型相同时为Celery任务设置预设标识,若同时执行包含预设标识的多个Celery任务,则调用数据库的第一功能接口,将数据库中与预设类型对应的参数发送至多个Celery任务中,本专利技术实施例通过调用第一功能接口,对多个Celery任务进行聚合处理,提升了Celery任务的执行效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的任务处理方法的实现流程图;图2是本专利技术实施例二提供的任务处理方法的实现流程图;图3是本专利技术实施例三提供的任务处理方法的实现流程图;图4是本专利技术实施例四提供的任务处理方法的实现流程图;图5是本专利技术实施例五提供的任务处理方法的实现流程图;图6是本专利技术实施例六提供的Celery系统的示意图;图7是本专利技术实施例七提供的Celery系统的另一个示意图;图8是本专利技术实施例八提供的终端设备的结构框图;图9是本专利技术实施例九提供的终端设备的示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本专利技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本专利技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本专利技术的描述。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。图1示出了本专利技术实施例提供的任务处理方法的实现流程,详述如下:在S101中,识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型。为了更好地说明本专利技术实施例的内容,首先对Celery系统进行介绍,Celery系统是基于python语言开发的分布式异步消息任务队列系统,适用于数据量级大,性能需求高的应用场景。从架构上来说,Celery系统包括客户端、消息队列(broker)以及执行进程(worker),除此之外,Celery系统还可包括后端数据库backend,用于存放Celery任务的执行结果。图6为Celery系统的示意图,如图6所示,首先由客户端将编写好的Celery任务派发至消息队列,消息队列作为一个信息传输的中间件,然后由执行进程从消息队列中读取并执行Celery任务,消息队列符合先进先出原则,其中,如果客户端发送多个Celery任务,则可将多个Celery任务置于不同的执行进程中执行。在本专利技术实施例中,对客户端发送的Celery任务进行识别,并确定Celery任务中所需求参数的参数类型,参数类型为数据类型,是指一个值的集合以及定义在该集合上的一组操作,本专利技术实施例中的参数类型可为数据库中原有的数据类型,比如MySQL数据库中,日期对应的参数类型为DATE。参数类型也可进行自定义,为了便于说明,假设本专利技术实施例中的参数类型都由自定义产生,且参数类型具体包括用户姓名Name、用户年龄Age和用户性别Sex,但应获知的是,这并不构成对本专利技术实施例的限定。值得一提的是,识别Celery任务并确定Celery任务中的参数类型的操作可以在Celery任务被客户端发送时执行,可以在Celery任务存放在消息队列中时执行,也可以在执行进程从消息队列中取出Celery任务时执行,根据实际应用场景决定。另外,一个Celery任务中的参数类型可仅为一个(如一个Celery任务的参数类型仅为用户姓名Name),也可为一个以上。在S102中,若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列。在确定Celery任务中的参数类型后,将参数类型与预设类型进行比对,如果参数类型与预设类型相同,则为Celery任务设置预设标识,预设标识可以设置在Celery任务的名称中(如在Celery任务原有的名本文档来自技高网...

【技术保护点】
1.一种任务处理方法,其特征在于,应用于Celery系统,所述Celery系统包括客户端、消息队列和执行进程,所述任务处理方法包括:识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列;在所述执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。

【技术特征摘要】
1.一种任务处理方法,其特征在于,应用于Celery系统,所述Celery系统包括客户端、消息队列和执行进程,所述任务处理方法包括:识别所述客户端发送的Celery任务,并确定所述Celery任务中的参数类型;若所述参数类型与预设类型相同,则为所述Celery任务设置预设标识,并将所述Celery任务插入至所述消息队列;在所述执行进程从所述消息队列中取出并执行包含所述预设标识的多个所述Celery任务时,调用数据库中与所述预设类型对应的第一功能接口,将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中。2.如权利要求1所述的任务处理方法,其特征在于,所述消息队列包括多个消息子队列,每个所述消息子队列对应一个进程池,所述进程池包括一个或一个以上的所述执行进程,所述将所述Celery任务插入至所述消息队列,包括:将所述Celery任务插入至与所述预设类型对应的所述消息子队列中;若与所述消息子队列对应的所述进程池中存在空闲的所述执行进程,则由空闲的所述执行进程执行所述消息子队列中的所述Celery任务;若与所述消息子队列对应的所述进程池中不存在空闲的所述执行进程,并且所述消息子队列中的所述Celery任务等待被调用的时长超过预设时长,则新建一个所述执行进程,并由新建的所述执行进程执行所述消息子队列中的所述Celery任务。3.如权利要求1所述的任务处理方法,其特征在于,所述将数据库中与所述预设类型对应的参数发送至多个所述Celery任务中,还包括:将不包含所述预设标识的所述Celery任务作为差异任务,并确定所述执行进程执行的多个所述差异任务的共有类型,所述共有类型为多个所述差异任务共同包含的参数类型;调用所述数据库中与所述共有类型对应的第二功能接口,将所述数据库中与所述共有类型对应的参数发送至多个所述差异任务中,并调用所述数据库中的服务接口,将所述数据库中除所述共有类型外的参数类型对应的参数分别发送至多个所述差异任务中。4.如权利要求1所述的任务处理方法,其特征在于,还包括:根据所述消息队列中的所述Celery任务的数量以及所述Celery任务被执行的平均处理时长计算出任务调取数,所述任务调取数为所述执行进程每次从所述消息队列调取所述Celery任务的数量;在所述Celery系统的配置文件中配置所述任务调取数。5.如权利要求1所述的任务处理方法,其特征在于,所述识别所述客户端发送的Celery任务,包括:查询所述Celery系统中正在运行的所述执行进程的数量;若所述执行进程的数量大于或等于预设阈值,则执行所述识别所述客户端发送的Celery任务的操作。6....

【专利技术属性】
技术研发人员:刘永华刘洋
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1