CN108958906A - 任务处理方法、装置及设备 - Google Patents
任务处理方法、装置及设备 Download PDFInfo
- Publication number
- CN108958906A CN108958906A CN201710391846.6A CN201710391846A CN108958906A CN 108958906 A CN108958906 A CN 108958906A CN 201710391846 A CN201710391846 A CN 201710391846A CN 108958906 A CN108958906 A CN 108958906A
- Authority
- CN
- China
- Prior art keywords
- task
- time
- waiting task
- waiting
- queue
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例涉及计算机技术领域,是关于一种任务处理方法、装置及设备。其中,所述方法包括:确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置。本发明的实施例,通过将第一待处理任务的下次处理时间与待处理任务队列中当前已有的待处理任务的下次处理时间进行比较,根据比较的结果,将第一待处理任务插入待处理任务队列中的目标位置,可以实现后续以不同的周期来处理不同的任务,提高任务的处理质量。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种任务处理方法、装置及设备。
背景技术
众所周知,在计算机技术领域常需周期性地处理一些作业任务。现有的任务处理方法通常是将要处理的任务放入一待处理任务队列的尾,而从队列的头取出下一个待处理的任务。显然,这种方法只适用于相同处理周期的任务,而影响处理周期不同的任务的处理质量。
举例来说,假设网络爬虫系统需要周期性地获取大量的网页信息,如URL(统一资源定位符Uniform Resource Locator),这里可将获取一网页信息的操作视为处理一任务。由于不同类型的网页具有不同的更新周期,因而需要以不同的获取周期来获取不同类型网页的网页信息(即以不同的处理周期来处理任务)。以几种典型的网页类型为例,首页的更新周期通常为小时级别,列表页的更新周期通常为天级别,而内容页的更新周期通常为周级别。采用现有的任务处理方法只能以一固定周期抓取不同类型网页的网页信息,而容易导致对更新周期较短的网页抓取不及时,或对更新周期较长的网页重复抓取。
发明内容
本发明实施例提供一种任务处理方法、装置及设备,以解决相关技术中的不足。
根据本发明实施例的第一方面,提供一种任务处理方法,包括:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
可选地,所述第一待处理任务为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
相应地,所述确定第一待处理任务的下次处理时间,包括:
确定第一待处理任务的处理周期及所述第一待处理任务的上次处理时间;
根据所述处理周期及所述上次处理时间确定所述第一待处理任务的下次处理时间。
可选地,所述第一待处理任务为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务;
相应地,所述确定第一待处理任务的下次处理时间,包括:
为所述第一待处理任务初始化设置下次处理时间。
可选地,所述待处理任务队列基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
可选地,所述待处理任务队列基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
可选地,所述方法还包括:
若所述待处理任务队列中的第二待处理任务已被执行,则从所述待处理任务队列中删除所述第二待处理任务。
根据本发明实施例的第二方面,提供一种网页信息获取方法,包括:
确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
根据本发明实施例的第三方面,提供一种任务处理装置,包括:
第一时间确定模块,用于确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
第一时间比较模块,用于将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
第一任务插入模块,用于根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
可选地,所述第一待处理任务为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块,包括:
周期时间确定单元,用于确定第一待处理任务的处理周期及所述第一待处理任务的上次处理时间;
下次时间确定单元,用于根据所述处理周期及所述上次处理时间确定所述第一待处理任务的下次处理时间。
可选地,所述第一待处理任务为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块,包括:
下次时间预设单元,用于为所述第一待处理任务初始化设置下次处理时间。
可选地,所述待处理任务队列基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
可选地,所述待处理任务队列基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
可选地,所述装置还包括:
任务删除模块,用于当所述待处理任务队列中的第二待处理任务已被执行时,从所述待处理任务队列中删除所述第二待处理任务。
根据本发明实施例的第四方面,提供一种网页信息获取装置,包括:
第二时间确定模块,用于确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;
第二时间比较模块,用于将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
网页信息插入模块,用于根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
根据本发明实施例的第五方面,提供一种电子设备,包括:
处理器;
用于存储处理器可处理指令的存储器;
其中,所述处理器被配置为:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
根据本发明实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器处理时实现以下任务处理方法:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
由上述实施例可知,本发明的任务处理方法、装置及设备,通过确定第一待处理任务的下次处理时间,并将第一待处理任务的下次处理时间与待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较,根据比较的结果,将第一待处理任务插入待处理任务队列中的目标位置,可以实现后续以不同的周期来处理不同的任务,进而可以提高任务的处理质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1A为根据本发明一示例性实施例示出的一种任务处理方法的流程图;
图1B为根据本发明一示例性实施例示出的一种待处理任务队列的示意图;
图2为根据本发明一示例性实施例示出的一种网页信息获取方法的流程图;
图3A为根据本发明一示例性实施例示出的一种网页信息获取系统的应用原理示意图;
图3B为根据本发明一示例性实施例示出的一种网页信息获取系统的结构示意图;
图4为根据本发明一示例性实施例示出的一种电子设备的结构示意图;
图5为根据本发明一示例性实施例示出的一种任务处理装置的结构示意图;
图6为根据本发明另一示例性实施例示出的一种任务处理装置的结构示意图;
图7为根据本发明一示例性实施例示出的一种网页信息获取装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1A为根据本发明一示例性实施例示出的一种任务处理方法的流程图,该实施例可以用于服务器,也可以用于终端(例如手机、平板电脑、个人计算机等),如图1A所示,该方法包括以下步骤:
S101:确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
具体地,所述待处理任务队列中既可以包含按照一周期进行循环处理的周期性任务,也可以包含不按照周期进行处理的非周期性任务,例如只需处理一次的任务。其中,所述待处理任务队列中的周期性任务的处理周期不同,即所有周期性任务的处理周期不唯一。例如,所述待处理任务队列中的一周期性任务的处理周期可以为T1,另一周期性任务的处理周期可以为T2,且T1≠T2。
具体来说,所述第一待处理任务可以包括两种,即所述待处理任务队列中存在过的、且需要周期性执行的待处理任务,以及,所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务,下面以具体实施例进行说明,但不用于限制本发明的范围。
在一实施例中,所述第一待处理任务可以为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
在此情况下,上述步骤S101中所述确定第一待处理任务的下次处理时间,可以包括:
S1011:确定第一待处理任务的处理周期T1及所述第一待处理任务的上次处理时间t1;
例如,确定所述第一待处理任务Task1的处理周期T1为2小时,且所述第一待处理任务Task1的上次处理时间t1为14:00:10,则可以继续执行步骤S1012。
S1012:根据所述处理周期T1及所述上次处理时间t1确定所述第一待处理任务的下次处理时间t2。
可以理解的是,所述第一待处理任务Task1的下次处理时间t2即为上次处理时间t1加上处理周期T1,即t2为16:00:10。
而在另一实施例中,所述第一待处理任务可以为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务,即系统接收到的新任务;
在此情况下,上述步骤S101中所述确定第一待处理任务的下次处理时间,可以包括:
为所述第一待处理任务初始化设置下次处理时间。
可以理解的是,若系统接收到一所述处理任务队列中未存在过的且需要周期性执行的待处理任务,则可以为该任务初始化设置一下次处理时间,例如为该任务随机分配一下次处理时间。
S102:将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
图1B为根据本发明一示例性实施例示出的一种待处理任务队列的示意图;如图1B所示,若所述待处理任务队列中当前已有的待处理任务的下次处理时间包括:…(Task8,15:59:30)、(Task3,16:00:05)、(Task5,16:01:10)…
则将Task1的下次执行时间t2(16:00:10)分别与所述待处理任务队列中当前已有的待处理任务的下次处理时间比较可知,Task1的下次执行时间晚于Task3,早于Task5。
在一实施例中,可以将待处理任务的下次处理时间以unix时间戳(unixtimestamp)形式进行表示。
S103:根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
如图1B所示,基于步骤S102中得出的比较结果,将所述目标位置应为Task3与Task5之间的位置,因而将Task1插入所述待处理任务队列中的Task3之后、Task5之前的位置。
由上述描述可知,本发明实施例通过上述步骤S101-S103,确定第一待处理任务的下次处理时间,并将第一待处理任务的下次处理时间与待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较,根据比较的结果,将第一待处理任务插入待处理任务队列中的目标位置,可以实现后续以不同的周期来处理不同的任务,进而可以提高任务的处理质量。
在上述各实施的基础上,所述待处理任务队列的实现方式也可以包括基于双向链表进行实现,以及基于数组进行实现等多种方式,下面以具体实施例进行说明,但不用于限制本发明的范围。
在一实施例中,所述待处理任务队列可以基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
具体来说,双向链表(双链表)是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
而在另一实施例中,所述待处理任务队列还可以基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
对于在实际应用中具体选择链表还是数组来实现所述待处理任务队列,下面进行简要地分析,以供参考:
从逻辑结构来看:数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取;而链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)。链表必须根据next指针找到下一个元素。
从内存存储来看:(静态)数组从栈中分配空间,对于程序员方便快速,但是自由度小;而链表从堆中分配空间,自由度大但是申请管理比较麻烦。
从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就可以使用数组;相反,如果需要经常插入和删除元素就可以使用链表数据结构。
在一实施例中,所述方法还可以包括:
若所述待处理任务队列中的第二待处理任务已被执行,则从所述待处理任务队列中删除所述第二待处理任务。可以理解的是,在所述第二待处理任务已被执行后,从所述待处理任务队列中删除所述第二待处理任务,可以起到有效节省内存空间的作用。
图2为根据本发明一示例性实施例示出的一种网页信息获取方法的流程图;如图2所示,该方法包括:
S201:确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;
在一实施例中,所述网页信息包括网页的URL(统一资源定位符Uniform ResourceLocator);
参照上述任务处理方法实施例,本实施例的网页信息也可包括所述网页信息队列中存在过的、且需要周期性获取的网页信息,以及,所述网页信息队列中未存在过的、且需要周期性获取的网页信息;
相应地,对于所述网页信息队列中存在过的网页信息,其下次获取时间可以根据所述网页信息的上次获取时间以及获取周期进行确定;而所述网页信息队列中未存在过的网页信息,其下次获取时间可以根据预设规则进行预先设定。
S202:将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
S203:根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
下面以一具体的网页信息获取系统实施例来说明本发明,但不用来限制本发明。
图3A为根据本发明一示例性实施例示出的一种网页信息获取系统的应用原理示意图;图3B为根据本发明一示例性实施例示出的一种网页信息获取系统的结构示意图;如图3A所示,本实施例的网页信息获取系统对外提供的功能如下:
(1)单个输入URL以及相应的抓取周期period;
(2)批量输入URL,其中每个URL有相应的抓取周期period;
(3)输出下一个需要抓取的URL。
如图3B所示,本实施例的系统可以包括:URL周期管理模块310、优先级队列模块320以及应用程序编程接口API模块330,其中:
URL周期管理模块310,用于存储URL以及这个URL每隔多久就需要被抓取一次的信息;
在一实施例中,所述URL周期管理模块可以使用map结构实现,定义结构如下(C++):
struct URL_Info{
string URL;//URL
int period;//需要被抓取的时间间隔,单位为秒
}
map<string,URL_Info>
其中key为URL字符串经过MD5计算得到的MD5值,value为这个URL_Info结构。
优先级队列模块320:用于将URL按照下次需要被抓取的时间距离当前时间的长短进行排序。
在一实施例中,优先级队列模块320可以采用双向链表实现,链表的每个元素定义如下(C++):
struct node{
struct node*pre;//前一个节点
struct node*next;//后一个节点
string url_md5;//URL对应的MD5值
int next_fetch_time;//下一次需要被抓取的时间,为unix时间戳
}
其中,双向链表的第一个元素即是距离当前时间最近的需要被抓取的URL。
另外优先级队列模块320还可以提供以下功能:
(B1)获取双向链表的第一个元素;
(B2)向双向链表插入某个元素。
举例来说,各功能的逻辑伪代码实现如下:
(B1)、获取双向链表的第一个元素的逻辑伪代码包括:
维护head指针,指向第一个元素node1;
从head指针读取到第一个元素node1的信息;
head指针往后移动一个元素到node2;
将node1的指针发送给API模块;
删除node1所占用的内存空间。
(B2)、向双向链表插入某个元素的逻辑伪代码包括:
检查插入的元素中,是否有URL信息以及其下次需要被抓取的unix时间戳,如果没有,返回错误;如果都有而且unix时间戳大于当前时间,则继续;
创建一个临时指针tmp_pointer=head;
取出tmp_pointer指向的元素中的unix时间戳信息time1,与要插入的元素的unix时间戳time比较:
如果time1<=time,则,tmp_point指向下一个元素,tmp_pointer=tmp_pointer->next;
如果time1>time,则将要插入的元素插入到tmp_pointer指向的元素之前。
API模块330,用于对外提供以下功能:
(C1)单个输入URL以及相应的周期;
(C2)批量输入URL,其中每个URL有相应的抓取周期period;
(C3)输出下一个需要抓取的URL。
具体来说,每个功能的实现逻辑如下:
(C1)单个输入URL和周期信息,包括:
计算URL的MD5值;
根据MD5值从“URL周期管理”模块中查询:
如果MD5值存在,则根据MD5获取到已经存在的URL_Info信息,更新其周期信息;
如果MD5值不存在,则创建一个URL_Info信息,并且保存到“URL周期管理”模块;
(C2)批量输入URL包括:
遍历每一个URL和其周期信息,对每一个都调用“单个输入URL”的逻辑;
(C3)输出下一个需要抓取的URL包括:
调用“优先级队列”的获取第一个元素的接口,得到其URL的MD5信息和unix时间戳信息time;
根据MD5从“URL周期管理”模块查询得到URL信息和周期信息period;
利用通过公式,计算下次抓取时间time_next=time+period
使用URL+time_next调用“优先级队列”的插入某个元素的接口,将其插入到优先级队列中;
对外返回URL+time的信息。
在此基础上,若地图事业部需要抓取大众点评上的商家信息,就可以从其大众点评网站的首页(http://www.dianping.com/)和列表页(如http://www.dianping.com/beijing/food)以及具体的商家信息页(如http://www.dianping.com/shop/24337240)抓取到具体的信息,按照以下方式输入系统即可,其中周期的单位为秒:
本发明任务处理装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本发明的任务处理装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器处理时实现以下任务处理方法:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
图5为根据本发明一示例性实施例示出的一种任务处理装置的结构示意图。如图5所示,该装置包括第一时间确定模块510、第一时间比较模块520以及第一任务插入模块530,其中:
第一时间确定模块510,用于确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
具体地,所述待处理任务队列中既可以包含按照一周期进行循环处理的周期性任务,也可以包含不按照周期进行处理的非周期性任务,例如只需处理一次的任务。其中,所述待处理任务队列中的周期性任务的处理周期不同,即所有周期性任务的处理周期不唯一。第一时间比较模块520,用于将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;在一实施例中,可以将待处理任务的下次处理时间以unix时间戳(unix timestamp)形式进行表示。
第一任务插入模块530,用于根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
由上述描述可知,本发明实施例通过确定第一待处理任务的下次处理时间,并将第一待处理任务的下次处理时间与待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较,根据比较的结果,将第一待处理任务插入待处理任务队列中的目标位置,可以实现后续以不同的周期来处理不同的任务,进而可以提高任务的处理质量。
图6为根据本发明另一示例性实施例示出的一种任务处理装置的结构示意图;其中,第一时间确定模块610、第一时间比较模块620以及第一任务插入模块630与图5所述实施例中的第一时间确定模块510、第一时间比较模块520以及第一任务插入模块530的功能相同,不再进行赘述。如图6所示,在图5所述实施例的基础上,第一待处理任务可以为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块610,可以包括:
周期时间确定单元611,用于确定第一待处理任务的处理周期及所述第一待处理任务的上次处理时间;
下次时间确定单元612,用于根据所述处理周期及所述上次处理时间确定所述第一待处理任务的下次处理时间。
在一实施例中,所述第一待处理任务还可以为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块610,还可以包括:
下次时间预设单元613,用于为所述第一待处理任务初始化设置下次处理时间。
在一实施例中,所述待处理任务队列基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
在一实施例中,所述待处理任务队列基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
在一实施例中,所述装置还可以包括:
任务删除模块640,用于当所述待处理任务队列中的第二待处理任务已被执行时,从所述待处理任务队列中删除所述第二待处理任务。
图7为根据本发明一示例性实施例示出的一种网页信息获取装置的结构示意图;如图7所示,该装置包括:第二时间确定模块710、第二时间比较模块720以及网页信息插入模块730,其中:
第二时间确定模块710,用于确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;
第二时间比较模块720,用于将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
网页信息插入模块730,用于根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (16)
1.一种任务处理方法,其特征在于,包括:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
2.根据权利要求1所述的方法,其特征在于,所述第一待处理任务为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
相应地,所述确定第一待处理任务的下次处理时间,包括:
确定第一待处理任务的处理周期及所述第一待处理任务的上次处理时间;
根据所述处理周期及所述上次处理时间确定所述第一待处理任务的下次处理时间。
3.根据权利要求1所述的方法,其特征在于,所述第一待处理任务为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务;
相应地,所述确定第一待处理任务的下次处理时间,包括:
为所述第一待处理任务初始化设置下次处理时间。
4.根据权利要求1所述的方法,其特征在于,所述待处理任务队列基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
5.根据权利要求1所述的方法,其特征在于,所述待处理任务队列基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述待处理任务队列中的第二待处理任务已被执行,则从所述待处理任务队列中删除所述第二待处理任务。
7.一种网页信息获取方法,其特征在于,包括:
确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;
将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
8.一种任务处理装置,其特征在于,包括:
第一时间确定模块,用于确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
第一时间比较模块,用于将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
第一任务插入模块,用于根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
9.根据权利要求8所述的装置,其特征在于,所述第一待处理任务为:所述待处理任务队列中存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块,包括:
周期时间确定单元,用于确定第一待处理任务的处理周期及所述第一待处理任务的上次处理时间;
下次时间确定单元,用于根据所述处理周期及所述上次处理时间确定所述第一待处理任务的下次处理时间。
10.根据权利要求8所述的装置,其特征在于,所述第一待处理任务为:所述待处理任务队列中未存在过的、且需要周期性执行的待处理任务;
相应地,所述第一时间确定模块,包括:
下次时间预设单元,用于为所述第一待处理任务初始化设置下次处理时间。
11.根据权利要求8所述的装置,其特征在于,所述待处理任务队列基于双向链表进行实现;其中,所述双向链表中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
12.根据权利要求8所述的装置,其特征在于,所述待处理任务队列基于数组进行实现;其中,所述数组中包括多个元素,每个元素对应一个待处理任务,且每个元素包含一待处理任务的标识及其下次抓取时间。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
任务删除模块,用于当所述待处理任务队列中的第二待处理任务已被执行时,从所述待处理任务队列中删除所述第二待处理任务。
14.一种网页信息获取装置,其特征在于,包括:
第二时间确定模块,用于确定第一待获取网页信息的下次获取时间;所述第一待获取网页信息为:需要添加至待获取网页信息队列的网页信息;所述待获取网页信息队列中的网页信息具有不同的信息获取周期;
第二时间比较模块,用于将所述第一待获取网页信息的下次获取时间与所述待获取网页信息队列中当前已有的待获取网页信息的下次获取时间分别进行比较;
网页信息插入模块,用于根据所述比较的结果,将所述第一待获取网页信息插入所述待获取网页信息队列中的目标位置;其中,所述目标位置的前一位置的待获取网页信息的下次获取时间早于所述第一待获取网页信息的下次获取时间,且所述目标位置的后一位置的待获取网页信息的下次获取时间晚于所述第一待获取网页信息的下次获取时间。
15.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可处理指令的存储器;
其中,所述处理器被配置为:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器处理时实现以下任务处理方法:
确定第一待处理任务的下次处理时间;所述第一待处理任务为:需要添加至待处理任务队列的任务;所述待处理任务队列中包含周期性任务,且周期性任务的处理周期不同;
将所述第一待处理任务的下次处理时间与所述待处理任务队列中当前已有的待处理任务的下次处理时间分别进行比较;
根据所述比较的结果,将所述第一待处理任务插入所述待处理任务队列中的目标位置;其中,所述目标位置的前一位置的待处理任务的下次处理时间早于所述第一待处理任务的下次处理时间,且所述目标位置的后一位置的待处理任务的下次处理时间晚于所述第一待处理任务的下次处理时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710391846.6A CN108958906A (zh) | 2017-05-27 | 2017-05-27 | 任务处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710391846.6A CN108958906A (zh) | 2017-05-27 | 2017-05-27 | 任务处理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108958906A true CN108958906A (zh) | 2018-12-07 |
Family
ID=64494759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710391846.6A Pending CN108958906A (zh) | 2017-05-27 | 2017-05-27 | 任务处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958906A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750550A (zh) * | 2019-10-22 | 2020-02-04 | 京东数字科技控股有限公司 | 数据查证方法、数据查证装置、存储介质与电子设备 |
CN115297037A (zh) * | 2021-04-19 | 2022-11-04 | 中国移动通信集团安徽有限公司 | 拨测方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
CN102184253A (zh) * | 2011-05-30 | 2011-09-14 | 北京搜狗科技发展有限公司 | 对网络资源进行抓取及更新消息推送的方法及系统 |
CN105589857A (zh) * | 2014-10-21 | 2016-05-18 | 腾讯科技(深圳)有限公司 | 一种网页内容抓取方法和装置 |
CN105824880A (zh) * | 2016-03-09 | 2016-08-03 | 乐视网信息技术(北京)股份有限公司 | 一种网页抓取方法及装置 |
CN106020951A (zh) * | 2016-05-12 | 2016-10-12 | 中国农业银行股份有限公司 | 一种任务调度方法及系统 |
-
2017
- 2017-05-27 CN CN201710391846.6A patent/CN108958906A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
CN102184253A (zh) * | 2011-05-30 | 2011-09-14 | 北京搜狗科技发展有限公司 | 对网络资源进行抓取及更新消息推送的方法及系统 |
CN105589857A (zh) * | 2014-10-21 | 2016-05-18 | 腾讯科技(深圳)有限公司 | 一种网页内容抓取方法和装置 |
CN105824880A (zh) * | 2016-03-09 | 2016-08-03 | 乐视网信息技术(北京)股份有限公司 | 一种网页抓取方法及装置 |
CN106020951A (zh) * | 2016-05-12 | 2016-10-12 | 中国农业银行股份有限公司 | 一种任务调度方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750550A (zh) * | 2019-10-22 | 2020-02-04 | 京东数字科技控股有限公司 | 数据查证方法、数据查证装置、存储介质与电子设备 |
CN115297037A (zh) * | 2021-04-19 | 2022-11-04 | 中国移动通信集团安徽有限公司 | 拨测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108156022B (zh) | 一种服务调用方法、装置及电子设备 | |
EP2724251B1 (en) | Methods for making ajax web applications bookmarkable and crawlable and devices thereof | |
CN109446570B (zh) | 业务流程展示方法、装置、计算机设备以及存储介质 | |
US9280394B2 (en) | Automatic cloud provisioning based on related internet news and social network trends | |
CN108366096A (zh) | 一种信息订阅方法、终端及计算机可读存储介质 | |
CN105045607A (zh) | 一种实现多种大数据计算框架统一接口的方法 | |
US8682851B2 (en) | Device specific folders for bookmark synchronization | |
CN106656920B (zh) | Http服务的处理方法、装置、存储介质及处理器 | |
US9038093B1 (en) | Retrieving service request messages from a message queue maintained by a messaging middleware tool based on the origination time of the service request message | |
CN111814024B (zh) | 分布式数据采集方法、系统及存储介质 | |
CN106250229B (zh) | 事件处理的方法及装置 | |
CN108073698B (zh) | 实时动画显示方法、装置、电子终端及可读存储介质 | |
US20160188717A1 (en) | Network crawling prioritization | |
CN104144202A (zh) | Hadoop分布式文件系统的访问方法、系统和装置 | |
CN109800370A (zh) | 网页页面的显示方法、装置、计算机设备及存储介质 | |
CN108958906A (zh) | 任务处理方法、装置及设备 | |
CN107862082B (zh) | 基于MySQL计数器表的高并发计数方法及web服务器 | |
CN109002286A (zh) | 基于同步编程的数据异步处理方法及装置 | |
Fischer et al. | Modeling security requirements for VNE algorithms | |
CN113961298A (zh) | 一种页面切换方法、装置、设备及介质 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN113760262A (zh) | 任务处理方法、装置、计算机系统和计算机可读存储介质 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN112650491A (zh) | 基于ReactNative的日期选择模态组件开发方法及相关设备 | |
JP2013186765A (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181207 |
|
RJ01 | Rejection of invention patent application after publication |