CN109426572A - 任务处理方法、装置及电子设备 - Google Patents

任务处理方法、装置及电子设备 Download PDF

Info

Publication number
CN109426572A
CN109426572A CN201710757062.0A CN201710757062A CN109426572A CN 109426572 A CN109426572 A CN 109426572A CN 201710757062 A CN201710757062 A CN 201710757062A CN 109426572 A CN109426572 A CN 109426572A
Authority
CN
China
Prior art keywords
interface
queue
task
specified
waiting list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710757062.0A
Other languages
English (en)
Other versions
CN109426572B (zh
Inventor
周胜凯
浦世亮
周明耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710757062.0A priority Critical patent/CN109426572B/zh
Publication of CN109426572A publication Critical patent/CN109426572A/zh
Application granted granted Critical
Publication of CN109426572B publication Critical patent/CN109426572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种任务处理方法、装置及电子设备,属于计算机技术领域。所述方法包括:接收多个接口调用请求,每个接口调用请求携带有任务对应的待调用的接口;将接收到的多个接口添加至接口队列,所述接口队列为先入先出队列;按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接口进行处理。本发明通过大大减少了电子设备需要维护的队列数量,从而降低了任务处理的复杂性,减少了电子设备的负载。

Description

任务处理方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,特别涉及一种任务处理方法、装置及电子设 备。
背景技术
在信息产业高速发展的今天,电子设备的并发处理能力越来越强。在生活 中经常出现一种场景:多个客户端可以同时向电子设备发送多个任务,在这多 个任务中,每个任务需要顺序调用多个接口,依次实现了多个接口对应的功能, 这个任务才算完成。
针对上述场景,目前通常采用下述方式对多个任务进行处理:多个客户端 同时将多个任务发送至电子设备,在每个任务需要调用的多个接口中,每个接 口均由一个队列进行维护。对这多个任务中的一个任务来说,电子设备接收到 这个任务时,将调用各个接口的指令发送至相应的接口的队列中进行排队,将 各个接口按照接口调用顺序排序,以两个相邻接口为例,接口调用顺序在前的 接口为第一接口,接口调用顺序在后的接口为第二接口,在调用第一接口,以 实现第一接口相应的功能后,才可以开始调用第二接口。在具体实施中,当调 用第二接口的指令位于第二接口的队列的队头,且,调用第一接口的指令还未执行完成时,则将调用第二接口的指令放入等待队列中,在不妨碍其它任务调 用第二接口的情况下,直到该任务调用第一接口的指令完成时,才可以执行调 用第二接口的指令,从而完成顺序调用接口的任务。
发明人发现上述方案至少存在以下问题:
当接口的数量较大时,电子设备需要维护的队列的数量也较大,因而增加 了任务处理过程的复杂性,使得电子设备不利于维护。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种任务处理方法、装置 及电子设备。所述技术方案如下:
第一方面,提供了一种任务处理方法,所述方法包括:
接收多个接口调用请求,每个接口调用请求携带有任务对应的待调用的接 口;
将接收到的多个接口添加至接口队列,所述接口队列为先入先出队列;
按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接 口进行处理。
在第一方面的一种实现方式中,所述接收多个接口调用请求之后,所述方 法还包括:
当接收到的多个接口中任一个接口为开启接口时,分配任务号,并将所述 任务号发送至指定客户端,所述开启接口为任务的接口调用顺序中的第一个接 口,所述指定客户端为发送所述任一个接口对应的接口调用请求的客户端。
在第一方面的一种实现方式中,所述按照所述接口队列中的各个接口在所 述接口队列中的顺序,对所述各个接口进行处理,包括:
对于位于所述接口队列队头的接口,当所述接口为开启接口时,获取对象 池中的第一指定对象,所述第一指定对象为处于闲置状态的对象;
向所述第一指定对象发送所述接口,由所述第一指定对象调用所述接口;
将所述接口从所述接口队列中删除,并将所述第一指定对象的状态置为忙 碌状态。
在第一方面的一种实现方式中,所述向所述第一指定对象发送所述接口之 后,所述方法还包括:
遍历等待队列,所述等待队列用于维护处于等待状态的接口;
当所述等待队列中包括指定接口时,将所述指定接口发送至所述第一指定 对象,所述指定接口与所述接口具有相同的任务号。
在第一方面的一种实现方式中,所述方法还包括:
对于位于所述接口队列队头的接口,当所述接口为开启接口且对象池中的 对象均处于忙碌状态时,则向等待队列发送所述接口;
将所述接口与所述接口队列中在所述接口之后第一个未处理接口进行交 换。
在第一方面的一种实现方式中,所述按照所述接口队列中的各个接口在所 述接口队列中的顺序,对所述各个接口进行处理,还包括:
对于位于所述接口队列队头的接口,当所述接口不是开启接口时,获取所 述接口的任务号;
遍历等待队列和对象池;
根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述 接口进行处理。
在第一方面的一种实现方式中,所述根据所述等待队列的第一遍历结果和 所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述等待队列的第一遍历结果指示所述等待队列包括所述接口的任务号 时,将所述接口发送至所述等待队列;
将所述接口从所述接口队列中删除。
在第一方面的一种实现方式中,所述根据所述等待队列的第一遍历结果和 所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时, 获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
当所述第二指定对象处于闲置状态时,将所述接口从所述接口队列中删除。
在第一方面的一种实现方式中,所述根据所述等待队列的第一遍历结果和 所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时, 获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
当所述第二指定对象处于忙碌状态时,向所述第二指定对象发送所述接口, 由所述第二指定对象调用所述接口;
将所述接口从所述接口队列中删除。
在第一方面的一种实现方式中,所述当所述第二指定对象处于忙碌状态时, 向所述第二指定对象发送所述接口,由所述第二指定对象调用所述接口之后, 所述方法还包括:
当所述接口为结束接口时,将所述第二指定对象的状态置为闲置状态,所 述结束接口为每个任务的接口调用顺序中的最后一个接口。
在第一方面的一种实现方式中,所述根据所述等待队列的第一遍历结果和 所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述等待队列的第一遍历结果和所述对象池的第二遍历结果指示所述等 待队列和所述对象池均不包括所述接口的任务号时,将所述接口从所述接口队 列中删除。
第二方面,提供了一种任务处理装置,所述装置包括:
接收模块,接收多个接口调用请求,每个接口调用请求携带有任务对应的 待调用的接口;
添加模块,用于将接收到的多个接口添加至接口队列,所述接口队列为先 入先出队列;
处理模块,用于按照所述接口队列中的各个接口在所述接口队列中的顺序, 对所述各个接口进行处理。
在第二方面的一种实现方式中,所述装置还包括:
分配模块,用于当接收到的多个接口中任一个接口为开启接口时,分配任 务号,第一发送模块,用于并将所述任务号发送至指定客户端,所述开启接口 为任务的接口调用顺序中的第一个接口,所述指定客户端为发送所述任一个接 口对应的接口调用请求的客户端。
在第二方面的一种实现方式中,所述装置还包括:
第一获取模块,用于对于位于所述接口队列队头的接口,当所述接口为开 启接口时,获取对象池中的第一指定对象,所述开启接口为每个任务的接口调 用顺序中的第一个接口,所述第一指定对象为处于闲置状态的对象;
第二发送模块,用于向所述第一指定对象发送所述接口,由所述第一指定 对象调用所述接口;
第一删除模块,用于将所述接口从所述接口队列中删除,第一状态设置模 块并将所述第一指定对象的状态置为忙碌状态。
在第二方面的一种实现方式中,所述装置还包括:
第一遍历模块,用于遍历等待队列,所述等待队列用于维护处于等待状态 的接口;
所述第二发送模块,还用于当所述等待队列中包括指定接口时,将所述指 定接口发送至所述第一指定对象,所述指定接口与所述接口具有相同的任务号。
在第二方面的一种实现方式中,所述装置还包括:
第三发送模块,用于对于位于所述接口队列队头的接口,当所述接口为开 启接口且对象池中的对象均处于忙碌状态时,则向等待队列发送所述接口;
交换模块,用于将所述接口与所述接口队列中在所述接口之后第一个未处 理接口进行交换。
在第二方面的一种实现方式中,所述装置还包括:
第二获取模块,用于当所述接口不是开启接口时,获取所述接口的任务号;
第二遍历模块,用于遍历等待队列和对象池;
所述处理模块,还用于根据所述等待队列的第一遍历结果和所述对象池的 第二遍历结果,对所述接口进行处理。
在第二方面的一种实现方式中,所述装置还包括:
第四发送模块,用于当所述等待队列的第一遍历结果指示所述等待队列包 括所述接口的任务号时,将所述接口发送至所述等待队列;
第二删除模块,用于将所述接口从所述接口队列中删除。
在第二方面的一种实现方式中,
所述第二获取模块,还用于当所述对象池的第二遍历结果指示所述对象池 包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述 接口具有相同的任务号;
所述装置还包括:
第三删除模块,用于当所述第二指定对象处于闲置状态时,将所述接口从 所述接口队列中删除。
在第二方面的一种实现方式中,
所述第二获取模块,还用于当所述对象池的第二遍历结果指示所述对象池 包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述 接口具有相同的任务号;
所述装置还包括:
第五发送模块,用于当所述第二指定对象处于忙碌状态时,向所述第二指 定对象发送所述接口,由所述第二指定对象调用所述接口;
第四删除模块,用于将所述接口从所述接口队列中删除。
在第二方面的一种实现方式中,所述装置还包括:
第二状态设置模块,用于当所述接口为结束接口时,将所述第二指定对象 的状态置为闲置状态,所述结束接口为每个任务的接口调用顺序中的最后一个 接口。
在第二方面的一种实现方式中,所述装置还包括:
第五删除模块,用于当所述等待队列的第一遍历结果和所述对象池的第二 遍历结果指示所述等待队列和所述对象池均不包括所述接口的任务号时,将所 述接口从所述接口队列中删除。
第三方面,提供了一种电子设备,包括:处理器;用于存储计算机程序的 存储器;其中,所述处理器用于执行存储器上所存放的计算机程序,实现第一 方面任一项所述的方法步骤。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例通过将所有任务中每个任务需要调用的多个接口陆续添加至 一个接口队列中,并在对该接口队列中的接口进行处理时严格遵循先入先出的 规则,从而实现了顺序调用多个接口,从而完成每个任务,大大减少了电子设 备需要维护的队列数量,从而降低了任务处理的复杂性,减少了电子设备的负 载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用任务处理方法的电子设备的结构示意 图;
图2是本发明实施例提供的一种任务处理方法流程图;
图3是本发明实施例提供的一种任务处理方法流程图;
图4是本发明实施例提供的一种对位于接口队列中队头的接口进行处理的 过程的示意图;
图5是本发明实施例提供的一种任务处理装置结构示意图;
图6是本发明实施例提供的一种任务处理装置结构示意图;
图7是本发明实施例提供的一种任务处理装置结构示意图;
图8是本发明实施例提供的一种任务处理装置结构示意图;
图9是本发明实施例提供的一种任务处理装置结构示意图;
图10是本发明实施例提供的一种任务处理装置结构示意图;
图11是本发明实施例提供的一种任务处理装置结构示意图;
图12是本发明实施例提供的一种任务处理装置结构示意图;
图13是本发明实施例提供的一种任务处理装置结构示意图;
图14是本发明实施例提供的一种任务处理装置结构示意图;
图15是本发明实施例提供的一种任务处理装置结构示意图;
图16是本发明实施例提供的一种电子设备1600的结构示意图;
图17是本发明实施例提供的一种电子设备1700的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。
本发明实施例提供了一种任务处理方法,该任务处理方法应用于电子设备 上,该电子设备可以是服务器,也可以是终端。如图1所示,该电子设备包括: 接口队列、等待队列、线程池和对象池。
接口队列用于维护所有任务需要调用的接口。等待队列用于维护处于等待 状态的接口。当电子设备接收到多个任务的接口调用请求时,将多个接口调用 请求携带的接口添加至接口队列中进行排队,从而有序对多个接口调用请求进 行处理。该接口队列中每个接口均具有自身的属性,包括:接口标签、接口参 数信息、任务号、保留字段。其中,接口标签用于对接口进行标记,从而识别 该接口是哪个接口。接口参数信息是调用接口时需要输入的参数,输入了该参 数才可以调用该接口。在具体实施中,可以使用JS(JavaScriptObject Notation,JSON)对象标记协议组装,以保证接口的统一化。任务号是电子设 备为每个任务分配的一个通用唯一识别码(Universally Unique Identifier, UUID),该任务号用于唯一识别任务。在本发明的可选实施例中,该电子设备和 客户端使用同一种任务处理协议,该任务处理协议中可以预先设置开启接口和 结束接口(例如设置开启接口的接口名称或接口标识等),客户端触发任务后, 将该任务需要调用的接口发送至电子设备时,需要发送调用开启接口的接口调 用请求和调用结束接口的接口调用请求,在电子设备调用开启接口之后,才能 依次调用该任务的其它接口,当调用完结束接口时,该任务才算完成。
线程池用于存放线程体,线程体为线程的执行体,在本发明实施例中,线 程体用于不断地从接口队列中获取接口,并将接口发送至对象池中存放的对象, 由对象调用接口。
对象池用于存放对象,对象用于调用各个接口,以实现各个接口对应的功 能,每个对象均具有自身的属性,包括:对象的状态和任务号。例如,对象可 以是处理器或处理单元。对象的状态包括闲置状态和忙碌状态,处于闲置状态 的对象可以执行新的任务,当该处于闲置状态的对象开始执行新的任务时,则 将该处于闲置状态的对象的状态置为忙碌状态;当处于忙碌状态的对象执行结 束任务时,则将该处于忙碌状态的对象的状态置为闲置状态。任务均拥有自己 唯一的任务号,该对象的属性也包括任务号,该对象的属性中的任务号为当前 正在执行的任务的任务号,当当前任务完成,该对象执行下一个任务时,将该 对象的任务号更新为下一个任务的任务号,从而可以实现对象与任务之间的对 应关系。也即是,在一个任务的生命周期中,该任务由一个客户端产生,将该 任务需要调用的多个接口均发送至一个对象中,将该对象的属性中的任务号置 为将该多个接口对应的任务的任务号,该对象接收到多个接口,调用该多个接 口,从而完成该任务。
线程池中线程的数量和对象池中的对象的数量均是可配置的,在该电子设 备对任务进行处理之前,可以预先配置线程池中线程的数量和对象池中的对象 的数量。需要说明的是,为了避免线程池一直存在处于闲置状态的线程,线程 池中线程的数量应该小于或等于对象池中的对象的数量,而对象池中的对象的 数量决定了该电子设备并行处理任务的数量。在该电子设备同时处理多个任务 时,由于对象池中的对象的数量有限,从而可以控制并行处理的任务的数量, 有效地避免了资源枯竭现象。
图2是本发明实施例提供的一种任务处理方法流程图。如图2所示,该任 务处理方法包括:
201、电子设备接收多个接口调用请求,每个接口调用请求携带有任务对应 的待调用的接口。
当一个客户端产生一个任务时,该任务需要顺序调用多个接口,从而依次 实现了多个接口对应的功能,这个任务才算完成,因而可以将调用各个接口的 接口调用请求陆续发送至电子设备,由电子设备可以接收每个接口调用请求, 并对每个接口调用请求进行处理。
多个客户端上产生多个任务,将每个任务调用各个接口的接口调用请求陆 续发送至电子设备,在某一时刻,该电子设备接收到多个接口调用请求,且每 个接口调用请求携带有任务对应的待调用的接口。例如,该多个接口调用请求 可以由对电脑安装的多个客户端进行操作触发得到,电脑接收到该多个接口调 用请求,以待对该多个接口调用请求进行处理。
202、当接收到的多个接口中任一个接口为开启接口时,电子设备分配任务 号,并将该任务号发送至指定客户端。
电子设备接收到接口调用请求时,需要确定该接口是否为开启接口,通过 访问该接口的属性标签,得知该接口为哪个接口,从而判断该接口是否为预先 设置的开启接口,其中,开启接口为任务的接口调用顺序中的第一个接口。在 开始一个任务时,必须要先调用该任务的开启接口,才能依次调用该任务需要 调用的其它接口。指定客户端是发送该开启接口对应的接口调用请求的客户端。
多个客户端将多个接口调用请求发送至电子设备,该多个接口调用请求携 带有任务需要调用的接口。当接收到的多个接口中任一个接口为开启接口时, 电子设备为该任一个接口分配任务号,并将该任务号发送至指定客户端。指定 客户端接收到该任务号后,当该指定客户端再次发送该任务的其他接口调用请 求时,该其他接口调用请求携带的接口携带有该任务号,从而保证了每个任务 需要调用的多个接口发送至一个对象。
203、电子设备将多个接口添加至接口队列。
该接口队列为先入先出队列。先入先出队列是一种传统的按序执行的队列, 是指在该队列中的第一条指令完成并引退,才能执行第二条指令。其中,指令 引退是指当处理器执行完一条指令后,把它从队列中删除。在该接口队列中, 先进入的接口先被处理。
电子设备接收到多个接口调用请求,从该多个接口调用请求中提取任务需 要调用的接口,并将该多个接口添加至接口队列,由于该多个接口调用请求来 自多个任务,又,每个任务将需要调用各个接口的接口调用请求陆续发送至电 子设备,因而在该接口队列中,多个任务需要调用的接口可以是彼此穿插的。
上述步骤利用一个接口队列维护所有任务的接口,相比于每个接口都由一 个队列维护,大大减少了电子设备需要维护的队列数量,从而降低了任务处理 的复杂性,减少了电子设备的负载。
204、对于位于接口队列队头的接口,当该接口为开启接口时,电子设备获 取对象池中的第一指定对象,第一指定对象为处于闲置状态的对象。
对于位于接口队列队头的接口,可以通过确定该接口是开启接口,从而确 定该接口是未处理的任务需要调用的第一个接口,对于未处理的任务,需要获 取处于闲置状态的对象来处理该未处理的任务。
在具体实施中,对于位于接口队列队头的接口,当该接口为开启接口时, 电子设备遍历对象池中的对象的状态,从而确定第一指定对象,电子设备获取 该第一指定对象。其中,遍历对象池中的对象的状态是指依次对对象池中各个 对象均进行访问,获取各个对象的属性标签,从而获取各个对象的状态,该各 个对象的属性标签中包括该对象的属性。当对象池中包括第一指定对象时,电 子设备可以获取任一个第一指定对象。在具体实施中,上述步骤可以由线程池 中的线程体执行,线程体从对象池中获取第一指定对象。
205、电子设备向第一指定对象发送该接口,由该第一指定对象调用该接口。
当该接口为开启接口,且对象池中包括第一指定对象时,电子设备向该第 一指定对象发送该接口,在具体实施中,可以由线程池中的线程体从接口队列 中获取该接口,并将该接口发送至该第一指定对象。该第一指定对象接收该接 口,将该接口的任务号作为该第一指定对象的任务号,并调用该接口,从而实 现该接口对应的功能。
206、电子设备将该接口从该接口队列中删除,并将该第一指定对象的状态 置为忙碌状态。
电子设备将该接口发送至第一指定对象,则可以将该接口从该接口队列中 删除,这样该接口后面的接口则成为该接口队列队头,从而可以重复上述确定 该接口的具体类型,并对该接口进行处理的过程。该第一指定对象开始调用该 接口,因而需要将该第一指定对象的状态置为忙碌状态,从而避免再次遍历后, 将其他任务的开启接口发送至该第一指定对象。
上述步骤204至206是按照该接口队列中的各个接口在该接口队列中的顺 序,对该各个接口进行处理的过程中的一种场景:位于接口队列的接口是一个 未处理的任务的第一个接口,且,对象池中存在处于闲置状态的对象。因而在 该场景中可以由处于闲置状态的对象处理该未处理的任务。
207、电子设备遍历等待队列。
等待队列用于维护处于等待状态的接口,该等待队列也是先入先出队列。 该等待队列中的接口可以但不限于有两种来源方式,第一种方式是某个接口本 身是开启接口且在处理到该接口时对象池中没有第一指定对象,因此,该接口 被发送至等待队列。第二种方式是某个接口本身不是开启接口,但是与该接口 具有相同任务号的开启接口已经位于等待队列中,因此,该接口被发送至等待 队列。因而当开启接口被发送至第一指定对象时,可以遍历等待队列,以查找 等待队列中的指定接口,该指定接口是指与开启接口具有相同任务号的接口。
经过上述步骤204至206,当该接口被发送至第一指定对象时,电子设备获 取该接口的任务号,并基于该任务号,遍历等待队列,通过依次访问该等待队 列中的接口,查找等待队列中的指定接口。
208、当等待队列中包括指定接口时,电子设备将该等待队列中的指定接口 发送至第一指定对象。
当等待队列中包括指定接口时,电子设备将该等待队列中的指定接口发送 至第一指定对象,该等待队列中的指定接口与该第一指定对象具有相同的任务 号。需要说明的是,该第一指定对象在调用该接口和该等待队列中的指定接口 时,按照接口调用顺序依次调用该接口和该指定接口。具体实施中,上述步骤 可以由线程池中的线程体执行,线程体将该等待队列中的指定接口发送至第一 指定对象。
上述步骤204至208是当该接口为开启接口,且,对象池中包括第一指定 对象时,将该接口发送至第一指定对象,并将等待队列中的指定接口发送至该 第一指定对象的情况。示例性地,可能还有一种场景:该接口为开启接口,且 对象池中的对象均处于忙碌状态。在这种场景中,可以参考下述步骤209和步 骤210。
209、对于位于该接口队列队头的接口,当该接口为开启接口且对象池中的 对象均处于忙碌状态时,则电子设备向等待队列发送该接口。
在具体实施中,对于位于接口队列队头的接口,当该接口为开启接口时, 电子设备遍历对象池中的对象的状态,当对象池中的对象均处于忙碌状态时, 对象池中没有能够处理新任务的第一指定对象,也即是,在这种场景下,电子 设备暂时无法处理该接口对应的新的任务,因而向等待队列发送该接口,使得 该接口处于等待状态,直至该接口被发送至第一指定对象为止。
210、电子设备将该接口与该接口队列中在该接口之后第一个未处理接口进 行交换。
第一个未处理接口是指从未作为接口队列队头的接口未被处理的接口。由 于对象池中的对象均处于忙碌状态,暂时无法处理该接口对应的任务,从而将 该接口发送至等待队列进行等待,而为了保证电子设备接收到的多个任务先到 达的任务优先被处理,电子设备将该接口与该接口队列中在该接口之后第一个 未处理接口进行交换,则该接口仍位于该接口队列中进行排队,也不妨碍对其 它接口进行处理。当该接口前的接口被发送至对象池中的对象或者等待队列中 时,该接口再次位于该接口队列队头,再次遍历对象池中的对象的状态。
例如,当该第一接口与该接口队列中在该第一接口之后第一个未处理接口 进行交换后,该第一个未处理接口则位于该接口队列的队头,当该第一个未处 理接口为开启接口且对象池中的对象的状态均为忙碌状态时,则电子设备将该 第一个未处理接口与在该第一个未处理接口之后第一个未处理接口进行交换, 也即是,将该第一个未处理接口交换到该接口后,从而保证了先到的任务优先 被处理。
需要说明的是,在具体实施中,将该接口与该接口队列中在该接口之后第 一个未处理接口进行交换可以通过指针来维护,该第一个未处理接口为在接口 队列中指针指向接口的下一个接口。当位于该接口队列队头的接口进行交换时, 指针的值加一;当位于该接口队列队头的接口被从该接口队列中删除时,指针 的值重置为零。
上述步骤209和步骤210可以同时进行或者先执行步骤210后执行步骤209, 上述步骤的先后顺序不作限定。当该接口为开启接口且对象池中的对象均处于 忙碌状态时,电子设备可以将该接口发送至等待队列的同时,将该接口与该接 口队列中在该接口之后第一个未处理接口进行交换。
上述步骤204至210是基于步骤201至203,对于位于接口队列对头的接口, 当该接口为开启接口时,电子设备对该接口进行处理的过程,在该过程中,还 针对对象池中对象的状态不同采用了不同的处理方法。
示例性地,基于步骤201至203可能还有一个场景:该接口不是开启接口。 如图3所示,在该场景中,可以采用以下处理方法对该接口进行处理:
211、对于位于该接口队列队头的接口,当该接口不是开启接口时,电子设 备获取该接口的任务号。
对于位于该接口队列队头的接口,当该接口不是开启接口时,可能有以下 三种情况:第一种情况,与该接口具有相同任务号的开启接口位于等待队列中, 处于等待状态;第二种情况,与该接口具有相同任务号的开启接口位于对象池 中的对象中,处于正在处理状态;第三种情况,与该接口具有相同任务号的开 启接口已经被删除,既不在等待队列中,也不在对象池中的对象中,处于失效 状态。
在上述三种情况中,对该接口的处理方式不同,需要确定该接口对应的任 务的开启接口处于什么状态,该接口与该接口对应的任务的开启接口具有相同 的任务号,因而电子设备获取该接口的任务号作为遍历的依据。
212、电子设备遍历等待队列和对象池。
电子设备基于获取到的任务号,遍历等待队列中的接口和对象池中的对象, 通过访问等待队列中的接口的属性标签和对象池中的对象的属性标签,得到等 待队列中的接口的任务号和对象池中的对象的任务号,从而得到等待队列的第 一遍历结果和对象池的第二遍历结果,则可以根据该等待队列的第一遍历结果 和该对象池的第二遍历结果,对该接口进行处理。
213、当该等待队列的第一遍历结果指示该等待队列包括该接口的任务号 时,电子设备将该接口发送至该等待队列。
当等待队列的第一遍历结果指示该等待队列包括该接口的任务号时,也即 是步骤211所示的第一种情况,与该接口具有相同任务号的开启接口位于等待 队列中,处于等待状态,该接口对应的任务还没有开始处理,则电子设备将该 接口发送至该等待队列,与该开启接口一起进行等待,直到与该接口具有相同 任务号的开启接口被发送至对象池中的第一指定对象时,才可以通过图2所示 的步骤207和步骤208将该接口作为指定接口发送至该第一指定对象。
214、电子设备将该接口从该接口队列中删除。
电子设备将该接口发送至等待队列,则可以将该接口从该接口队列中删除, 这样该接口后面的接口则成为该接口队列队头的接口,从而可以重复上述确定 该接口的具体类型,并对该接口进行处理的过程。
215、当该对象池的第二遍历结果指示该对象池包括该接口的任务号时,电 子设备获取该第二指定对象。
第二指定对象与该接口具有相同的任务号。当对象池的第二遍历结果指示 该对象池包括该接口的任务号时,也即是步骤211所示的第二种情况,与该接 口具有相同任务号的开启接口位于对象池中的对象中,处于正在处理状态,电 子设备获取该第二指定对象,该第二指定对象由步骤212中遍历对象池时确定。 在该第二种情况中,当该第二指定对象的状态不同时,电子设备对该接口的处 理方式不同,因而电子设备获取该第二指定对象后,还需要确定该第二指定对 象的状态。
在具体实施中,上述步骤可以由线程池中的线程体执行,线程体从对象池 中获取第二指定对象。
216、当该第二指定对象处于闲置状态时,电子设备将该接口从该接口队列 中删除。
在本发明实施中,当对象池中任一对象处于忙碌状态,且该任一对象在预 设时长内未接收到任何接口时,电子设备将该对象的状态置为闲置状态,在此 之后,当位于接口队列队头的接口为开启接口时,可以将该位于接口队列队头 的接口发送至该对象,再将该对象的状态置为忙碌状态,并将该对象的任务号 置为该位于接口队列对头的接口的任务号,这样可以保证僵尸任务不占用资源, 该僵尸任务是指在预设时长内处理进度始终未发生改变的任务。当该第二指定 对象处于闲置状态时,则可能是由上述过程导致,该接口对应的任务已被判定 为僵尸任务,电子设备不再对僵尸任务进行处理,因而将该接口从该接口队列 中删除。
217、当该第二指定对象处于忙碌状态时,电子设备向该第二指定对象发送 该接口,由该第二指定对象调用该接口。
当第二指定对象处于忙碌状态时,该第二指定对象正在处理该接口对应的 任务,电子设备向该第二指定对象发送该接口。在具体实施中,上述步骤可以 由线程池中的线程体执行,线程体从接口队列中获取该接口,并将该接口发送 至该第二指定对象。该第二指定对象接收并调用该接口,从而实现该接口对应 的功能。
该步骤217在具体实施中可能还有一种场景:该接口为结束接口,该结束 接口为每个任务的接口调用顺序中的最后一个接口。与判断接口是否为开启接 口同理,电子设备可以通过访问该接口的属性标签,从而确定该接口是哪个接 口,从而判断该接口是否为预先设置的结束接口。在该场景中,该第二指定对 象调用结束该接口,则完成了该接口对应的任务,因而,该第二指定对象调用 结束该接口,将该第二指定对象的状态置为闲置状态,并将该第二指定对象的 任务号清除。
218、电子设备将该接口从该接口队列中删除。
电子设备将该接口发送至第二指定对象,则可以将该接口从该接口队列中 删除,这样该接口后面的接口则成为该接口队列队头的接口,从而可以重复上 述确定该接口的具体类型,并对该接口进行处理的过程。
219、当该等待队列的第一遍历结果和该对象池的第二遍历结果指示该等待 队列和该对象池均不包括该接口的任务号时,电子设备将该接口从该接口队列 中删除。
如步骤216所示,当对象中正在处理的任务被判定为僵尸任务时,当该对 象处理新的任务时,将该对象的任务号置为该新的任务的任务号,则可能导致 该等待队列的第一遍历结果和该对象池的第二遍历结果指示该等待队列和该对 象池均不包括该接口的任务号,也即是步骤211所示的第三种情况,与该接口 具有相同任务号的开启接口已经被删除,既不在等待队列中,也不在对象池中 的对象中,处于失效状态,电子设备将该接口从该接口队列中删除,不再对该 接口进行处理。
当然上述情况也可能是由于程序出错,将错误的接口放入该接口队列中导 致,因而电子设备将该接口从该接口队列中删除后,还可以将错误信息发送至 产生该接口对应的任务的客户端,以提示出现错误。
上述步骤213至219是根据该等待队列的第一遍历结果和该对象池的第二 遍历结果,对该接口进行处理的过程,通过该等待队列的第一遍历结果和该对 象池的第二遍历结果确定该接口对应的开启接口处于什么状态,进而确定该接 口对应的任务的处理状态,从而确定对该接口的不同的处理方式。
在上述基于步骤201至203的两种场景中,步骤204至219是按照该接口 队列中的各个接口在该接口队列中的顺序,对该各个接口进行处理的过程,在 该过程中,可能由于每个接口的属性不同,或对象池中对象的状态不同,从而 对每个接口的处理方式不同。
图4是本发明实施例提供的一种对位于接口队列中队头的接口进行处理的 过程的示意图。如图4所示,以依次对四个位于接口队列队头的接口进行处理 的过程为例,假设接口队列中有i1、i2、i3、i4、i5五个接口,其中i1为任 务号为5和6的任务的开启接口,i5为任务号为4的任务的结束接口,该结束 接口为每个任务的接口调用顺序中的最后一个接口,该五个接口来自于不同的 任务,因而该五个接口具有不同的任务号。在图中提供了4个步骤,其中步骤1 至3时,对象池中对象的状态均为忙碌状态,步骤4中对象池中对象pHandle8 的状态为闲置状态。该4个步骤具体过程如下:
在步骤1中:位于接口队列队头的接口为i1,该接口的任务号为5,该接口 为开启接口,对象池中的对象均处于忙碌状态,因而将该接口与该接口队列中 在该接口之后第一个未处理接口任务号为6的i1接口进行交换,指针的值加一, 即从零变成一。
在步骤2中:位于接口队列队头的接口为i1,该接口的任务号为6,该接口 为开启接口,对象池中的对象均处于忙碌状态,因而将该接口与该接口队列中 在该接口之后第一个未处理接口任务号为4的i5接口进行交换,指针的值加一, 即从一变成二。
在步骤3中:位于接口队列队头的接口为i5,该接口的任务号为4,该接口 不是开启接口,对象池中的对象pHandle4的任务号也是4,因而将该接口发送 至该对象pHandle4,由该对象pHandle4调用该接口,并将该接口从接口队列中 删除,将指针的指重置为零,又,该接口为结束接口,对象pHandle4在调用结 束该接口后,将该对象pHandle4的状态置为闲置状态。
在步骤4中:位于接口队列队头的接口为i1,该接口的任务号为5,该接口 再次位于接口队列队头,该接口为开启接口,对象池中的对象pHandle4的状态 为闲置状态,因而可以将该接口发送至该对象pHandle4,由该对象pHandle4调 用该接口。
本发明实施例通过将所有任务中每个任务需要调用的多个接口陆续添加至 一个接口队列中,并在对该接口队列中的接口进行处理时严格遵循先入先出的 规则,从而实现了顺序调用多个接口,从而完成每个任务,大大减少了电子设 备需要维护的队列数量,从而降低了任务处理的复杂性,减少了电子设备的负 载。进一步地,还通过配置有限的对象,限制电子设备并行处理任务的数量, 有效地避免了系统崩溃和资源枯竭的现象。进一步地,还通过在某任务需要调 用的第一个接口需要等待时调整该第一个接口在接口队列中的位置,从而保证 了任务的处理能够按照其接收顺序来进行,先到达的任务能够被先处理,避免 由于接口乱序而造成的处理时延。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在 此不再一一赘述。
图5是本发明实施例提供的一种任务处理装置结构示意图,如图5所示, 该装置包括:
接收模块501,接收多个接口调用请求,每个接口调用请求携带有任务对应 的待调用的接口;
添加模块502,用于将接收到的多个接口添加至接口队列,该接口队列为先 入先出队列;
处理模块503,用于按照该接口队列中的各个接口在该接口队列中的顺序, 对该各个接口进行处理。
在一种可能实现方式中,如图6所示,该装置还包括:
分配模块504,用于当接收到的多个接口中任一个接口为开启接口时,分配 任务号,第一发送模块505,用于并将该任务号发送至指定客户端,该开启接口 为任务的接口调用顺序中的第一个接口,该指定客户端为发送该任一个接口对 应的接口调用请求的客户端。
在一种可能实现方式中,如图7所示,该装置还包括:
第一获取模块506,用于对于位于该接口队列队头的接口,当该接口为开启 接口时,获取对象池中的第一指定对象,该开启接口为每个任务的接口调用顺 序中的第一个接口,该第一指定对象为处于闲置状态的对象;
第二发送模块507,用于向该第一指定对象发送该接口,由该第一指定对象 调用该接口;
第一删除模块508,用于将该接口从该接口队列中删除,第一状态设置模块 509并将该第一指定对象的状态置为忙碌状态。
在一种可能实现方式中,如图8所示,该装置还包括:
第一遍历模块510,用于遍历等待队列,该等待队列用于维护处于等待状态 的接口;
该第二发送模块507,还用于当该等待队列中包括指定接口时,将该指定接 口发送至该第一指定对象,该指定接口与该接口具有相同的任务号。
在一种可能实现方式中,如图9所示,该装置还包括:
第三发送模块511,用于对于位于该接口队列队头的接口,当该接口为开启 接口且对象池中的对象均处于忙碌状态时,则向等待队列发送该接口;
交换模块512,用于将该接口与该接口队列中在该接口之后第一个未处理接 口进行交换。
在一种可能实现方式中,如图10所示,该装置还包括:
第二获取模块513,用于当该接口不是开启接口时,获取该接口的任务号;
第二遍历模块514,用于遍历等待队列和对象池;
该处理模块503,还用于根据该等待队列的第一遍历结果和该对象池的第二 遍历结果,对该接口进行处理。
在一种可能实现方式中,如图11所示,该装置还包括:
第四发送模块515,用于当该等待队列的第一遍历结果指示该等待队列包括 该接口的任务号时,将该接口发送至该等待队列;
第二删除模块516,用于将该接口从该接口队列中删除。
在一种可能实现方式中,如图12所示,
该第二获取模块513,还用于当该对象池的第二遍历结果指示该对象池包括 该接口的任务号时,获取该第二指定对象,该第二指定对象与该接口具有相同 的任务号;
该装置还包括:
第三删除模块517,用于当该第二指定对象处于闲置状态时,将该接口从该 接口队列中删除。
在一种可能实现方式中,如图13所示,
该第二获取模块513,还用于当该对象池的第二遍历结果指示该对象池包括 该接口的任务号时,获取该第二指定对象,该第二指定对象与该接口具有相同 的任务号;
该装置还包括:
第五发送模块518,用于当该第二指定对象处于忙碌状态时,向该第二指定 对象发送该接口,由该第二指定对象调用该接口;
第四删除模块519,用于将该接口从该接口队列中删除。
在一种可能实现方式中,如图14所示,该装置还包括:
第二状态设置模块520,用于当该接口为结束接口时,将该对象的状态置为 闲置状态,该结束接口为每个任务的接口调用顺序中的最后一个接口。
在一种可能实现方式中,如图15所示,该装置还包括:
第五删除模块521,用于当该等待队列的第一遍历结果和该对象池的第二遍 历结果指示该等待队列和该对象池均不包括该接口的任务号时,将该接口从该 接口队列中删除。
本发明实施例提供的装置,通过将所有任务中每个任务需要调用的多个接 口陆续添加至一个接口队列中,并在对该接口队列中的接口进行处理时严格遵 循先入先出的规则,从而实现了顺序调用多个接口,从而完成每个任务,大大 减少了电子设备需要维护的队列数量,从而降低了任务处理的复杂性,减少了 电子设备的负载。
需要说明的是:上述实施例提供的任务处理装置在进行任务处理时,仅以 上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功 能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块, 以完成以上描述的全部或者部分功能。另外,上述实施例提供的任务处理装置 与任务处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里 不再赘述。
图16是本发明实施例提供的一种电子设备1600的结构示意图。例如,该 电子设备1600可以被提供为一终端,该终端可以用于执行上述各个实施例中提 供的任务处理方法。参见图16,该电子设备1600包括:
电子设备1600可以包括RF(Radio Frequency,射频)电路1610、包括有 一个或一个以上计算机可读存储介质的存储器1620、输入单元1630、显示单元 1640、传感器1650、音频电路1660、WiFi(Wireless Fidelity,无线保真)模块 1670、包括有一个或者一个以上处理核心的处理器1680、以及电源1690等部件。 本领域技术人员可以理解,图16中示出的终端结构并不构成对终端的限定,可 以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。 其中:
RF电路1610可用于收发信息或通话过程中,信号的接收和发送,特别地, 将基站的下行信息接收后,交由一个或者一个以上处理器1680处理;另外,将 涉及上行的数据发送给基站。通常,RF电路1610包括但不限于天线、至少一 个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、 耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电 路1610还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一 通信标准或协议,包括但不限于GSM(Global System of Mobilecommunication, 全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、 CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、 电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1620可用于存储软件程序以及模块,处理器1680通过运行存储在 存储器1620的软件程序以及模块,从而执行各种功能应用以及数据处理。存储 器1620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系 统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等; 存储数据区可存储根据电子设备1600的使用所创建的数据(比如音频数据、电 话本等)等。此外,存储器1620可以包括高速随机存取存储器,还可以包括非 易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存 储器件。相应地,存储器1620还可以包括存储器控制器,以提供处理器1680 和输入单元1630对存储器1620的访问。
输入单元1630可用于接收输入的数字或字符信息,以及产生与用户设置以 及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地, 输入单元1630可包括触敏表面1631以及其他输入设备1632。触敏表面1631, 也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用 户使用手指、触笔等任何适合的物体或附件在触敏表面1631上或在触敏表面 1631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏 表面1631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检 测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器; 触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给 处理器1680,并能接收处理器1680发来的命令并加以执行。此外,可以采用电 阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1631。除了触敏 表面1631,输入单元1630还可以包括其他输入设备1632。具体地,其他输入 设备1632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键 等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1640可用于显示由用户输入的信息或提供给用户的信息以及电子 设备1600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、 视频和其任意组合来构成。显示单元1640可包括显示面板1641,可选的,可以 采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1641。进一步的,触敏表面1631 可覆盖显示面板1641,当触敏表面1631检测到在其上或附近的触摸操作后,传 送给处理器1680以确定触摸事件的类型,随后处理器1680根据触摸事件的类 型在显示面板1641上提供相应的视觉输出。虽然在图16中,触敏表面1631与 显示面板1641是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触敏表面1631与显示面板1641集成而实现输入和输出功能。
电子设备1600还可包括至少一种传感器1650,比如光传感器、运动传感器 以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中, 环境光传感器可根据环境光线的明暗来调节显示面板1641的亮度,接近传感器 可在电子设备1600移动到耳边时,关闭显示面板1641和/或背光。作为运动传 感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大 小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横 竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲 击)等;至于电子设备1600还可配置的陀螺仪、气压计、湿度计、温度计、红 外线传感器等其他传感器,在此不再赘述。
音频电路1660、扬声器1661,传声器1662可提供用户与电子设备1600之 间的音频接口。音频电路1660可将接收到的音频数据转换后的电信号,传输到 扬声器1661,由扬声器1661转换为声音信号输出;另一方面,传声器1662将 收集的声音信号转换为电信号,由音频电路1660接收后转换为音频数据,再将 音频数据输出处理器1680处理后,经RF电路1616以发送给比如另一终端,或 者将音频数据输出至存储器1620以便进一步处理。音频电路1660还可能包括 耳塞插孔,以提供外设耳机与电子设备1600的通信。
WiFi属于短距离无线传输技术,电子设备1600通过WiFi模块1670可以帮 助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽 带互联网访问。虽然图16示出了WiFi模块1670,但是可以理解的是,其并不 属于电子设备1600的必须构成,完全可以根据需要在不改变发明的本质的范围 内而省略。
处理器1680是电子设备1600的控制中心,利用各种接口和线路连接整个 手机的各个部分,通过运行或执行存储在存储器1620内的软件程序和/或模块, 以及调用存储在存储器1620内的数据,执行电子设备1600的各种功能和处理 数据,从而对手机进行整体监控。可选的,处理器1680可包括一个或多个处理 核心;优选的,处理器1680可集成应用处理器和调制解调处理器,其中,应用 处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理 无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1680中。
电子设备1600还包括给各个部件供电的电源1690(比如电池),优选的, 电源可以通过电源管理系统与处理器1680逻辑相连,从而通过电源管理系统实 现管理充电、放电、以及功耗管理等功能。电源1690还可以包括一个或一个以 上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变 器、电源状态指示器等任意组件。
尽管未示出,电子设备1600还可以包括摄像头、蓝牙模块等,在此不再赘 述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储 器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器 中,且经配置以由一个或者一个以上处理器执行。该一个或者一个以上程序包 含用于执行上述图2、图3或图4所示实施例所示的方法。
图17是本发明实施例提供的一种电子设备1700的结构示意图。例如,该 电子设备1700可以被提供为一服务器。参照图17,电子设备1700包括处理组 件1722,其进一步包括一个或多个处理器,以及由存储器1732所代表的存储器 资源,用于存储可由处理部件1722的执行的指令,例如应用程序。存储器1732 中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。 此外,处理组件1722被配置为执行指令,以执行上述图2、图3或图4所示的 方法。
电子设备1700还可以包括一个电源组件1726被配置为执行电子设备1700 的电源管理,一个有线或无线网络接口1750被配置为将电子设备1700连接到 网络,和一个输入输出(I/O)接口1758。电子设备1700可以操作基于存储在 存储器1732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM, FreeBSDTM或类似。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种 计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘 等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神 和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。

Claims (23)

1.一种任务处理方法,其特征在于,所述方法包括:
接收多个接口调用请求,每个接口调用请求携带有任务对应的待调用的接口;
将接收到的多个接口添加至接口队列,所述接口队列为先入先出队列;
按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接口进行处理。
2.根据权利要求1所述的方法,其特征在于,所述接收多个接口调用请求之后,所述方法还包括:
当接收到的多个接口中任一个接口为开启接口时,分配任务号,并将所述任务号发送至指定客户端,所述开启接口为任务的接口调用顺序中的第一个接口,所述指定客户端为发送所述任一个接口对应的接口调用请求的客户端。
3.根据权利要求1所述的方法,其特征在于,所述按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接口进行处理,包括:
对于位于所述接口队列队头的接口,当所述接口为开启接口时,获取对象池中的第一指定对象,所述第一指定对象为处于闲置状态的对象;
向所述第一指定对象发送所述接口,由所述第一指定对象调用所述接口;
将所述接口从所述接口队列中删除,并将所述第一指定对象的状态置为忙碌状态。
4.根据权利要求3所述的方法,其特征在于,所述向所述第一指定对象发送所述接口之后,所述方法还包括:
遍历等待队列,所述等待队列用于维护处于等待状态的接口;
当所述等待队列中包括指定接口时,将所述指定接口发送至所述第一指定对象,所述指定接口与所述接口具有相同的任务号。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于位于所述接口队列队头的接口,当所述接口为开启接口且对象池中的对象均处于忙碌状态时,则向等待队列发送所述接口;
将所述接口与所述接口队列中在所述接口之后第一个未处理接口进行交换。
6.根据权利要求1所述的方法,其特征在于,所述按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接口进行处理,还包括:
对于位于所述接口队列队头的接口,当所述接口不是开启接口时,获取所述接口的任务号;
遍历等待队列和对象池;
根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理。
7.根据权利要求6所述的方法,其特征在于,所述根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述等待队列的第一遍历结果指示所述等待队列包括所述接口的任务号时,将所述接口发送至所述等待队列;
将所述接口从所述接口队列中删除。
8.根据权利要求6所述的方法,其特征在于,所述根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
当所述第二指定对象处于闲置状态时,将所述接口从所述接口队列中删除。
9.根据权利要求6所述的方法,其特征在于,所述根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
当所述第二指定对象处于忙碌状态时,向所述第二指定对象发送所述接口,由所述第二指定对象调用所述接口;
将所述接口从所述接口队列中删除。
10.根据权利要求9所述的方法,其特征在于,所述当所述第二指定对象处于忙碌状态时,向所述第二指定对象发送所述接口,由所述第二指定对象调用所述接口之后,所述方法还包括:
当所述接口为结束接口时,将所述第二指定对象的状态置为闲置状态,所述结束接口为每个任务的接口调用顺序中的最后一个接口。
11.根据权利要求6所述的方法,其特征在于,所述根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理,还包括:
当所述等待队列的第一遍历结果和所述对象池的第二遍历结果指示所述等待队列和所述对象池均不包括所述接口的任务号时,将所述接口从所述接口队列中删除。
12.一种任务处理装置,其特征在于,所述装置包括:
接收模块,接收多个接口调用请求,每个接口调用请求携带有任务对应的待调用的接口;
添加模块,用于将接收到的多个接口添加至接口队列,所述接口队列为先入先出队列;
处理模块,用于按照所述接口队列中的各个接口在所述接口队列中的顺序,对所述各个接口进行处理。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
分配模块,用于当接收到的多个接口中任一个接口为开启接口时,分配任务号,第一发送模块,用于并将所述任务号发送至指定客户端,所述开启接口为任务的接口调用顺序中的第一个接口,所述指定客户端为发送所述任一个接口对应的接口调用请求的客户端。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于对于位于所述接口队列队头的接口,当所述接口为开启接口时,获取对象池中的第一指定对象,所述开启接口为每个任务的接口调用顺序中的第一个接口,所述第一指定对象为处于闲置状态的对象;
第二发送模块,用于向所述第一指定对象发送所述接口,由所述第一指定对象调用所述接口;
第一删除模块,用于将所述接口从所述接口队列中删除,第一状态设置模块并将所述第一指定对象的状态置为忙碌状态。
15.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第一遍历模块,用于遍历等待队列,所述等待队列用于维护处于等待状态的接口;
所述第二发送模块,还用于当所述等待队列中包括指定接口时,将所述指定接口发送至所述第一指定对象,所述指定接口与所述接口具有相同的任务号。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于对于位于所述接口队列队头的接口,当所述接口为开启接口且对象池中的对象均处于忙碌状态时,则向等待队列发送所述接口;
交换模块,用于将所述接口与所述接口队列中在所述接口之后第一个未处理接口进行交换。
17.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于当所述接口不是开启接口时,获取所述接口的任务号;
第二遍历模块,用于遍历等待队列和对象池;
所述处理模块,还用于根据所述等待队列的第一遍历结果和所述对象池的第二遍历结果,对所述接口进行处理。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第四发送模块,用于当所述等待队列的第一遍历结果指示所述等待队列包括所述接口的任务号时,将所述接口发送至所述等待队列;
第二删除模块,用于将所述接口从所述接口队列中删除。
19.根据权利要求17所述的装置,其特征在于,
所述第二获取模块,还用于当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
所述装置还包括:
第三删除模块,用于当所述第二指定对象处于闲置状态时,将所述接口从所述接口队列中删除。
20.根据权利要求17所述的装置,其特征在于,
所述第二获取模块,还用于当所述对象池的第二遍历结果指示所述对象池包括所述接口的任务号时,获取所述第二指定对象,所述第二指定对象与所述接口具有相同的任务号;
所述装置还包括:
第五发送模块,用于当所述第二指定对象处于忙碌状态时,向所述第二指定对象发送所述接口,由所述第二指定对象调用所述接口;
第四删除模块,用于将所述接口从所述接口队列中删除。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
第二状态设置模块,用于当所述接口为结束接口时,将所述第二指定对象的状态置为闲置状态,所述结束接口为每个任务的接口调用顺序中的最后一个接口。
22.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第五删除模块,用于当所述等待队列的第一遍历结果和所述对象池的第二遍历结果指示所述等待队列和所述对象池均不包括所述接口的任务号时,将所述接口从所述接口队列中删除。
23.一种电子设备,其特征在于,包括:
处理器;
用于存储计算机程序的存储器;
其中,所述处理器用于执行存储器上所存放的计算机程序,实现权利要求1-11任一项所述的方法步骤。
CN201710757062.0A 2017-08-29 2017-08-29 任务处理方法、装置及电子设备 Active CN109426572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710757062.0A CN109426572B (zh) 2017-08-29 2017-08-29 任务处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710757062.0A CN109426572B (zh) 2017-08-29 2017-08-29 任务处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109426572A true CN109426572A (zh) 2019-03-05
CN109426572B CN109426572B (zh) 2021-07-02

Family

ID=65503290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710757062.0A Active CN109426572B (zh) 2017-08-29 2017-08-29 任务处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109426572B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021136068A1 (zh) * 2019-12-30 2021-07-08 中兴通讯股份有限公司 资源调度方法、装置、电子设备及计算机可读介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591721A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 一种分配线程执行任务的方法和系统
CN103761121A (zh) * 2013-12-31 2014-04-30 深圳英飞拓科技股份有限公司 一种嵌入式系统及其系统实现方法
CN104899089A (zh) * 2015-05-25 2015-09-09 常州北大众志网络计算机有限公司 一种面向异构多核体系的任务调度方法
CN105141549A (zh) * 2015-08-17 2015-12-09 北京京东尚科信息技术有限公司 网络请求处理方法和装置
US20160012368A1 (en) * 2014-07-14 2016-01-14 Rocket Lawyer Incorporated Real-Time User Interface for Prioritized Professional Work Queue
CN105262826A (zh) * 2015-10-29 2016-01-20 福建天晴数码有限公司 接口处理数量的调整方法及系统
GB2472057B (en) * 2009-07-23 2016-01-27 Ibm Method to implement a robust cluster FIFO with the coupling facility for record based communication
CN105389207A (zh) * 2015-11-06 2016-03-09 成都视达科信息技术有限公司 自适应数据请求处理方法、装置、任务调度器及系统
CN105573733A (zh) * 2014-10-16 2016-05-11 腾讯科技(深圳)有限公司 浏览器与web前端通信的方法、web前端及系统
CN105763595A (zh) * 2015-12-23 2016-07-13 杭州赫智电子科技有限公司 一种提高数据处理效率的方法及服务器
CN105930208A (zh) * 2016-04-01 2016-09-07 广州华多网络科技有限公司 一种线程调度方法及线程调度装置
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置
CN106371824A (zh) * 2016-08-23 2017-02-01 广州优视网络科技有限公司 便携式设备及应用程序弹出消息显示控制方法和装置
CN106528418A (zh) * 2016-10-28 2017-03-22 广东浪潮大数据研究有限公司 一种测试方法及装置
CN106534118A (zh) * 2016-11-11 2017-03-22 济南浪潮高新科技投资发展有限公司 一种高性能ip‑sm‑gw系统的实现方法
CN106980543A (zh) * 2017-04-05 2017-07-25 福建智恒软件科技有限公司 基于事件触发的分布式任务调度方法及装置

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2472057B (en) * 2009-07-23 2016-01-27 Ibm Method to implement a robust cluster FIFO with the coupling facility for record based communication
CN102591721A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 一种分配线程执行任务的方法和系统
CN103761121A (zh) * 2013-12-31 2014-04-30 深圳英飞拓科技股份有限公司 一种嵌入式系统及其系统实现方法
US20160012368A1 (en) * 2014-07-14 2016-01-14 Rocket Lawyer Incorporated Real-Time User Interface for Prioritized Professional Work Queue
CN105573733A (zh) * 2014-10-16 2016-05-11 腾讯科技(深圳)有限公司 浏览器与web前端通信的方法、web前端及系统
CN104899089A (zh) * 2015-05-25 2015-09-09 常州北大众志网络计算机有限公司 一种面向异构多核体系的任务调度方法
CN105141549A (zh) * 2015-08-17 2015-12-09 北京京东尚科信息技术有限公司 网络请求处理方法和装置
CN105262826A (zh) * 2015-10-29 2016-01-20 福建天晴数码有限公司 接口处理数量的调整方法及系统
CN105389207A (zh) * 2015-11-06 2016-03-09 成都视达科信息技术有限公司 自适应数据请求处理方法、装置、任务调度器及系统
CN105763595A (zh) * 2015-12-23 2016-07-13 杭州赫智电子科技有限公司 一种提高数据处理效率的方法及服务器
CN105930208A (zh) * 2016-04-01 2016-09-07 广州华多网络科技有限公司 一种线程调度方法及线程调度装置
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置
CN106371824A (zh) * 2016-08-23 2017-02-01 广州优视网络科技有限公司 便携式设备及应用程序弹出消息显示控制方法和装置
CN106528418A (zh) * 2016-10-28 2017-03-22 广东浪潮大数据研究有限公司 一种测试方法及装置
CN106534118A (zh) * 2016-11-11 2017-03-22 济南浪潮高新科技投资发展有限公司 一种高性能ip‑sm‑gw系统的实现方法
CN106980543A (zh) * 2017-04-05 2017-07-25 福建智恒软件科技有限公司 基于事件触发的分布式任务调度方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李毅: "基于PVM的研究任务迁移,C++对象分布并行及Capability实现", 《中国优秀博士学位论文全文数据库信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021136068A1 (zh) * 2019-12-30 2021-07-08 中兴通讯股份有限公司 资源调度方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
CN109426572B (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN104639672B (zh) 进行域名解析的方法和装置
US10635449B2 (en) Method and apparatus for running game client
CN105278937B (zh) 一种显示弹出框消息的方法及装置
CN104618217B (zh) 分享资源的方法、终端、服务器及系统
CN104142868B (zh) 建立连接的方法及装置
CN104427074B (zh) 一种显示来电信息的方法、装置和系统
CN105471704B (zh) 一种实现多人通话的方法、装置及系统
CN105491135B (zh) 建立数据连接的方法及装置
CN106161176A (zh) 群组会话消息处理方法和装置
CN107977272A (zh) 应用运行的方法及装置
CN103886198B (zh) 一种数据处理的方法、终端、服务器及系统
CN104253870B (zh) 控制数据访问周期的方法和装置
CN107786424A (zh) 音视频通信方法、终端及服务器
US20160274892A1 (en) Data update method, user terminal, and data updated system
CN103491421B (zh) 内容展示方法、装置及智能电视
CN108090345A (zh) linux系统外部命令执行方法及装置
CN106161147B (zh) 建立网络连接的方法及装置
CN106789307B (zh) 配置数据处理方法、装置及系统
CN104468483B (zh) 数据传输方法及系统、控制装置与节点装置
CN105553718B (zh) 引导信息显示方法及装置
CN109495769A (zh) 视频通信方法、终端、智能电视、服务器及存储介质
CN107122036A (zh) 中央处理器频率调节方法及装置
CN107025574A (zh) 推广信息的展示方法及装置
EP3761684A1 (en) Bluetooth transmission control method, control system, and storage medium
CN103793267A (zh) 队列的访问方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant