定时下载任务的执行方法及装置的制造方法
【技术领域】
[0001]本发明涉及一种定时下载任务的执行方法及装置。
【背景技术】
[0002]目前,一些网络订票系统(例如机票订票系统等)一般通过以下两种方式从服务提供机构下载当前最新的满舱信息(即,该趟车次、该趟航班的待售票是否剩余):1)在用户发送订单因为满舱(即无余票)而失败后,更新该订单所针对的车次或航班等的满舱信息;2)以某一时长为间隔更新满舱信息。
[0003]这样的方法的缺陷在于:一方面,用户发送订单失败而更新,或者自动更新频率过慢,会造成用户体验下降进而丧失客户;另一方面,由于自动更新的方式频繁更新满舱信息,会对运营商的服务器造成压力,且产生相关费用,因此增加了成本。
【发明内容】
[0004]本发明要解决的技术问题是为了克服现有技术成本和用户体验难以两全的缺陷,提供一种既可以保证用户体验又降低系统成本的定时下载任务的执行方法及装置。
[0005]本发明是通过下述技术方案来解决上述技术问题:
[0006]—种定时下载任务的执行方法,其特点在于,其包括有一主动执行方法和一被动执行方法,所述主动执行方法包括有以下步骤:
[0007]S1、一数据库接收若干定时下载任务,其中,每一定时下载任务均包括有一执行时间点、一执行间隔时长和一基准时间点;
[0008]也就是说,每一个定时下载任务均由三个属性:执行时间点、执行间隔时长和基准时间点。
[0009]S2、从所述数据库内获取若干所述执行时间点位于以当前时刻为起始的一设定时间段内的定时下载任务;
[0010]S3、将获取的所述定时下载任务的基准时间点与执行间隔时长相加,判断相加得出的时间点是否落入所述设定时间段内,若是则执行S4,若否则执行S62 ;
[0011]此处,由于被动执行方法(见下文SlOO?S400)中有可能直接从数据库找到某个特定的定时下载任务进行下载并更改该特定的定时下载任务的基准时间点,所以要判断基准时间与执行间隔时长相加所得出的时间点是否落入设定时间段内,借此来排除掉已经被动执行过的定时下载任务。
[0012]S4、相加得出的时间点落入所述设定时间段内的所述定时下载任务为主动下载任务,执行所述主动下载任务,并记录所述主动下载任务的执行时刻后,执行S5 ;
[0013]此处,主动下载任务可以理解为,通过自动执行方法这一途径主动进行下载的定时下载任务。
[0014]S5、更新所述主动下载任务的基准时间点至所述执行时刻后执行S61 ;
[0015]S61、将所述主动下载任务的执行时间点更新为同一主动下载任务的基准时间点与执行间隔时长相加得出的时间点后执行S71 ;
[0016]S62、相加得出的时间点不落入所述设定时间段内的所述定时下载任务为被动下载任务,将所述被动下载任务的执行时间点更新为同一被动下载任务的基准时间点与执行间隔时长相加得出的时间点后执行S72 ;
[0017]S71、将所述主动下载任务发送回所述数据库后,执行S2 ;
[0018]S72、将所述被动下载任务发送回所述数据库后,执行S2 ;
[0019]也就是说,通过判断相加得出的时间点是否落入所述设定时间段内,可以将被动执行方法(见下文)中已执行过的(即,基准时间点更新过的)定时下载任务(即被动下载任务)排除。
[0020]所述被动执行方法包括有以下步骤:
[0021]S100、接收到一指令,所述指令用于执行一定时下载任务;
[0022]S200、从所述数据库中找到SlOO中的所述定时下载任务;
[0023]S300、执行SlOO中的所述定时下载任务,并记录SlOO中的所述定时下载任务的执行时刻;
[0024]S400、更新SlOO中的所述定时下载任务的基准时间点为S300中的执行时刻。
[0025]此处,被动执行方法主要涉及其他手段对特定的定时下载任务的手动(即被动)执行。这样可以使整个定时下载任务的执行方法兼顾主动下载和被动下载的好处。
[0026]较佳的,所述S2和S3之间包括有S21:
[0027]将获取的定时下载任务放入一个定时下载任务队列,在所述定时下载任务队列中的所述定时下载任务的数量高于一设定数量时停止所述获取;
[0028]所述S3为,依次将所述定时下载任务队列中的所述定时下载任务的基准时间点与执行间隔时长相加,判断相加得出的时间点是否落入所述设定时间段内,若是则执行S4,若否则执行S62。
[0029]也就是说,在定时下载任务队列中的定时下载任务在数量上存在堆积时(即处理繁忙时),进行等待,在一段时间内不继续获取新的定时下载任务以减少系统压力。
[0030]较佳的,所述S4为:
[0031]相加得出的时间点落入所述设定时间段内的所述定时下载任务为主动下载任务,执行所述主动下载任务,判断所述主动下载任务是否在一设定的实施次数内成功执行,若是则执行S41,若否则执行S42 ;
[0032]S41、记录所述主动下载任务的执行时刻后,执行S5 ;
[0033]S42、将所述主动下载任务发送至一出错任务集合后结束流程。
[0034]此处,这样设置可以提高系统的容错率。
[0035]较佳的,所述S42为:
[0036]将所述主动下载任务发送至一出错任务集合后执行S43 ;
[0037]S43、每经过一第一设定时长,从所述出错任务集合内的全部主动下载任务中筛选出可执行的主动下载任务,将可执行的所述主动下载任务发送至所述数据库,并将可执行的所述主动下载任务的基准时间点更新为发送时刻减去执行间隔时长得出的时间点。
[0038]也就是说,下载失败的主动下载任务会集中起来,在某些特定的时间点将其中的可执行的主动下载任务(即由于系统问题而下载失败的主动下载任务,非因本身失效而造成下载失败的主动下载任务)重新发送至数据库,进入主动执行的循环。
[0039]较佳的,所述SI为:
[0040]—数据库以一第二设定时长为间隔接收若干定时下载任务,其中,每一定时下载任务均包括有一执行时间点、一执行间隔时长和一基准时间点。
[0041]也就是说,数据库定时接收新的定时下载任务。
[0042]本发明还提供一种定时下载任务的执行装置,其特点在于,其包括有一主动执行模块和一被动执行模块,所述主动执行模块包括有:一数据库、一定时下载任务获取模块、一时间点判断模块、一主动下载任务执行模块、一主动下载任务基准时间点更新模块、一主动下载任务执行时间点更新模块、一被动下载任务执行时间点更新模块、一主动下载任务发回模块和一被动下载任务发回模块;
[0043]所述数据库用于接收若干定时下载任务,其中,每一定时下载任务均包括有一执行时间点、一执行间隔时长和一基准时间点;
[0044]所述定时下载任务获取模块用于从所述数据库内获取若干所述执行时间点位于以当前时刻为起始的一设定时间段内的定时下载任务;
[0045]所述时间点判断模块用于将获取的所述定时下载任务的基准时间点与执行间隔时长相加,判断相加得出的时间点是否落入所述设定时间段内,若是则调用所述