主被动组合获取机票数据的方法、系统、设备及存储介质与流程

文档序号:12034790阅读:257来源:国知局
主被动组合获取机票数据的方法、系统、设备及存储介质与流程
本发明涉及数据查询
技术领域
,尤其涉及一种在减少主动查询工作量的基础上提高缓存数据更新频率的主被动组合获取机票数据的方法、系统、设备及存储介质。
背景技术
:旅游平台作为互联网应用,面向在线销售的航空公司的数量众多,相同的航线各航空公司的销售价格也可能差异较大。旅游平台获取航空公司的销售数据,一般都为用户即时搜索的方式进行,如用户登录平台的网页或者手机应用,提交查询请求,平台则经过多个系统,通过多个网关路由的方式获取在航空公司系统的销售数据。这种即时获取的方式由在线用户触发,在线用户根据出发及目的地、时间等信息查询,这种查询要求的数据精确及时,查询一次消耗的资源多,查询的响应时间慢,确定了这种方式不适合多条件同时查询。作为互联网平台,对航空公司销售数据的获取,除了单次的即时的查询,其实有众多的场景是需要即时显示多航空公司多条件的机票数据的,如显示某个航线一个月内的每天最低的价格,这些一次显示的价格数据组合条件繁多,要求同时展示的日期范围大,不可能通过即时查询的方式获取,而只能通过读取低价缓存的方式的获取。而通过低价缓存的方式获取数据,就涉及到数据的更新是否及时的问题,由于实际的销售价格数据由航空公司自己把握,互联网平台的低价缓存就要尽量保持展示的低价在用户点击使用时还是真实存在的。然而,由于数据的繁多,要保持一定的新鲜度,查询请求的数量是十分庞大的,对系统的要求也十分高。技术实现要素:针对现有技术中的问题,本发明的目的在于提供一种主被动组合获取机票数据的方法、系统、设备及存储介质,减少需要获取机票数据而请求航空公司服务器的次数,保持缓存中机票数据的新鲜度和真实性。本发明实施例提供一种主被动组合获取机票数据的方法,包括主动查询和被动查询,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。可选地,所述查询请求包括单程查询请求和往返查询请求,所述预设存储条件包括单程存储条件和往返存储条件;所述被动查询还包括如下步骤:判断所述查询请求为单程查询请求还是往返查询请求;所述查询请求为单程查询请求时,判断对应的第二机票数据是否满足至少一所述单程存储条件;所述查询请求为往返查询请求时,判断对应的第二机票数据是否满足至少一所述往返存储条件。可选地,所述单程存储条件包括第一单程日期、第一单程出发地和第一单程目的地;所述单程查询请求包括第二单程日期、第二单程出发地和第二单程目的地;所述单程查询请求所对应的第二机票数据包括于第二单程日期,从第二单程出发地到第二单程目的地的机票数据;所述单程查询请求对应的第二机票数据满足一所述单程存储条件时,该第二机票数据的第二单程日期、第二单程出发地和第二单程目的地分别与该单程存储条件的第一单程日期、第一单程出发地和第一单程目的地相同。可选地,创建多个预设存储条件包括创建单程存储条件,所述创建单程存储条件包括如下步骤:在所述缓存数据库中创建多个预设单程航线,所述预设单程航线包括单程时间范围、单程航线出发地和单程航线目的地,其中各个所述预设单程航线的单程时间范围包括n个日期,n≥1;根据该n个日期分别创建n个单程存储条件,该n个单程存储条件的第一单程出发地和第一单程目的地分别与对应的预设单程航线的单程航线出发地和单程航线目的地相同。可选地,还包括单程航线展示,所述单程航线展示包括如下步骤:在所述缓存数据库中查询各个所述预设单程航线中n个单程存储条件的第一机票数据;将该n个单程存储条件的第一机票数据统一以用户界面的形式推送至用户。可选地,所述单程查询请求对应的第二机票数据包括于第二单程日期、从所述第二单程出发地到第二单程目的地的多个航班数据;各个所述单程存储条件所对应的第一机票数据包括于第一单程日期,从所述第一单程出发地到第一单程目的地的机票最低价格;所述被动查询还包括如下步骤:根据满足一单程存储条件的第二机票数据计算该单程存储条件下的机票最低价格,将计算得到的机票最低价格存储至缓存数据库,作为该单程存储条件的第一机票数据。可选地,所述往返存储条件包括第一去程日期、第一往返出发地、第一往返目的地和第一返程日期;所述往返查询请求包括第二去程日期、第二往返出发地、第二往返目的地和第二返程日期;所述往返查询请求对应的第二机票数据包括于第二去程日期,从第二往返出发地到第二往返目的地,且于第二返程日期,从所述第二往返目的地返回所述第二往返出发地的机票数据;所述往返查询请求对应的第二机票数据满足一所述往返存储条件时,该第二机票数据的第二去程日期、第二往返出发地、第二往返目的地和第二返程日期分别与该往返存储条件的第一去程日期、第一往返出发地、第一往返目的地和第一返程日期相同。可选地,创建多个预设存储条件包括创建往返存储条件,所述创建往返存储条件包括如下步骤:在所述缓存数据库中创建多个预设往返航线,各个所述预设往返航线包括去程时间范围、往返航线出发地、往返航线目的地和返程时间范围,其中各个所述预设往返航线的去程时间范围包括x个日期,返程时间范围包括每个去程日期增加(y1,y2)个自然日,x≥1,y2≥y1≥0;该去程时间范围和返程时间范围组成x*(y2-y1+1)个往返日期组合,根据该往返日期组合创建x*(y2-y1+1)个往返存储条件,各个所述往返存储条件的第一往返出发地和第一往返目的地分别与该预设往返航线的往返航线出发地和往返航线目的地相同。可选地,还包括往返航线展示,所述往返航线展示包括如下步骤:在所述缓存数据库中查询各个所述预设往返航线中x*(y2-y1+1)个往返存储条件的第一机票数据;将该x*(y2-y1+1)个往返存储条件的第一机票数据统一以用户界面的形式推送至用户。可选地,所述往返查询请求对应的第二机票数据包括于第二去程日期,从第二往返出发地到第二往返目的地,且于第二返程日期,从所述第二往返目的地返回所述第二往返出发地的多个航班数据;各个所述往返存储条件所对应的第一机票数据包括于第一去程日期,从所述第一往返出发地到第一往返目的地,且于第一返程日期,从所述第一往返目的地返回所述第一往返出发地的机票最低价格;所述被动查询还包括如下步骤:根据满足一往返存储条件的第二机票数据计算该往返存储条件下的机票最低价格,将计算得到的机票最低价格存储至缓存数据库,作为该往返存储条件的第一机票数据。可选地,从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库,包括如下步骤:从各个航空公司的服务器获取满足需要更新的预设存储条件的第二机票数据;根据该需要更新的预设存储条件的第二机票数据计算该预设存储条件下的机票最低价格;将该预设存储条件下的机票最低价格存储至所述缓存数据库,作为该需要更新的预设存储条件所对应的第一机票数据。本发明实施例还提供一种主被动组合获取机票数据的系统,包括:缓存数据库,用于创建多个预设存储条件,并存储各个所述预设存储条件所对应的第一机票数据;主动查询模块,用于依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及主动数据获取模块,用于从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;用户请求响应模块,用于根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;被动查询模块,用于判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。本发明实施例还提供一种主被动组合获取机票数据的设备,包括:处理器;存储器,其中存储有程序;所述处理器执行所述程序时,执行主动查询和被动查询的操作,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。本发明实施例还提供一种存储介质,用于存储程序,所述程序被执行时使得至少一处理器执行主动查询和被动查询的操作,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。本发明所提供的主被动组合获取机票数据的方法、系统、设备及存储介质具有下列优点:本发明提供了一种主动查询和被动查询相结合的机票数据获取方案,通过保存被动查询时的热门航线数据,减少需要获取低价数据而请求航司系统的查询次数;通过主动查询遍历热门航线的机票数据,实时更新,缩短主动查询机票数据的周期,提高旅游平台显示航空公司低价缓存数据的新鲜度;从而丰富旅游平台快速显示航空公司销售数据的使用场景,在主动查询时可以将资源有效分配到需要更新的航线数据上,提高系统资源利用率。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。图1是本发明一实施例的主被动组合获取机票数据的方法中主动查询的流程图;图2是本发明一实施例的主被动组合获取机票数据的方法中被动查询的流程图;图3是本发明一实施例的根据查询请求类型判断被动请求第二机票数据的流程图;图4是本发明一具体实施例的主被动组合获取机票数据的方法的流程图;图5是本发明一实施例的主被动组合组合获取机票数据的系统的结构示意图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。为了实现上述目的,本发明的主被动组合获取机票数据的方法包括主动查询和被动查询,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。采用该种技术方案,通过保存被动查询时的热门航线数据,减少需要获取低价数据而请求航司系统的查询次数;通过主动查询遍历热门航线的机票数据,实时更新,缩短主动查询机票数据的周期。需要注意的是,本发明中所使用的“第一”和“第二”仅为区分不同的内容,而并不指示重要性或顺序。如图1所示,本发明实施例提供一种主被动组合获取机票数据的方法,主动查询和被动查询,所述主动查询包括如下步骤:s110:在一缓存数据库中创建多个预设存储条件,依次遍历所述缓存数据库中的各个预设存储条件;s120:判断各个预设存储条件所对应的第一机票数据是否存在,如果一预设存储条件所对应的第一机票数据存在,则继续步骤s130,如果一预设存储条件所对应的第一机票数据不存在,则继续步骤s140;s130:判断最近一次更新时刻距离当前时刻的时间是否大于预设时限,如果是,则继续步骤s140,否则继续步骤s150;s140:定义该预设存储条件为需要更新,然后继续步骤s160;s150:定义该预设存储条件为无需更新,然后继续检查下一第一机票数据;s160:从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库。如图2所示,所述被动查询包括如下步骤:s210:接收到用户的查询请求;s220:根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据;s230:将第二机票数据返回至用户;以及s240:判断所述第二机票数据是否满足预设存储条件,将满足一预设存储条件的第二机票数据处理成预设格式并存储至缓存数据库,作为该预设存储条件的第一机票数据,所述缓存数据库中包括有各个预设存储条件所对应的第一机票数据。此处预设格式指的是缓存数据库中存储数据的格式,例如以预设存储条件和第一机票数据表格的形式存储等。上述步骤的序号仅为指示各个步骤,而不表示各个步骤之间的顺序,具体步骤的顺序可以参照图1和图2中的实施例,但不以此为限。例如,步骤s220后触发步骤s230和步骤s240,但是步骤s230和步骤s240之间没有先后顺序,可以并行处理也可以先后处理。进一步地,所述第二机票数据可以是满足所述查询请求的多个航班数据,用户在看到航班数据之后,可以根据自己需要选择具体的航班,航班数据可以包括航班具体的时刻、航班所属航空公司、航班价格、航班退换条件等等相关信息。而所述第一机票数据则可以是满足预设存储条件的机票最低价格,即缓存数据库中实际存储的是各个预设存储条件所对应的机票最低价格。因此,在步骤s240中确定满足一预设存储条件的第二机票数据时,还包括根据该第二机票数据计算机票最低价格的步骤,将该机票最低价格存储入缓存数据库中,在步骤s160中主动查询第一机票数据时,在航空公司的服务器查询到的其实是满足预设存储条件的第二机票数据,然后根据第二机票数据计算机票最低价格,然后再存储至缓存数据库中,作为第一机票数据。此处第一机票数据类型仅为举例,在实际应用中,还可以将第一机票数据设置为机票均价、机票最低三个价格等等不同的类型,根据第二机票数据进行计算得到即可。本发明中结合主动和被动两种模式,被动查询中,在线用户要求的正常查询是要满足的,因此被动查询是必然存在的;而考虑到数据的完整性,主动查询也不可以缺少,而这两种方式的组合,可以取长补短,提供更优越的机票数据查询服务。如图3所示,进一步地,所述查询请求可以包括单程查询请求和往返查询请求,所述预设存储条件可以包括单程存储条件和往返存储条件;所述被动查询还包括如下步骤:s240-1:判断所述查询请求为单程查询请求还是往返查询请求;s240-2:所述查询请求为单程查询请求时,判断对应的第二机票数据是否满足至少一所述单程存储条件;s240-3:所述查询请求为往返查询请求时,判断对应的第二机票数据是否满足至少一所述往返存储条件;s240-4:在判断完成后,根据满足一所述单程存储条件或满足一所述往返存储条件的第二机票数据计算其最低价格,并保存至所述缓存数据库,作为对应的单程存储条件或往返存储条件的第一机票数据。s240-5:如上所述,如果第二机票数据不符合单程存储条件和往返存储条件,则结束当前被动查询流程。进一步地,所述单程存储条件包括第一单程日期、第一单程出发地和第一单程目的地;所述单程查询请求包括第二单程日期、第二单程出发地和第二单程目的地;所述单程查询请求所对应的第二机票数据包括于第二单程日期,从第二单程出发地到第二单程目的地的机票数据;所述单程查询请求对应的第二机票数据满足一所述单程存储条件时,该第二机票数据的第二单程日期、第二单程出发地和第二单程目的地分别与该单程存储条件的第一单程日期、第一单程出发地和第一单程目的地相同。例如,用户查询6月20日从北京到厦门的单程机票数据,在旅游平台输入查询请求后,旅游平台的服务器从各个航空公司的服务器获取第二机票数据。查询完成后,判断缓存数据库中是否存在6月20日从北京到厦门的单程存储条件,如果是,则对查询到的第二机票数据进行处理,处理成预设格式后存储至缓存数据库中。三个维度:时间6月20日,出发地北京,目的地厦门三者必须均相同,如果有一个不符,则不满足对应要求。类似地,所述往返存储条件包括第一去程日期、第一往返出发地、第一往返目的地和第一返程日期;所述往返查询请求包括第二去程日期、第二往返出发地、第二往返目的地和第二返程日期;所述往返查询请求对应的第二机票数据包括于第二去程日期,从第二往返出发地到第二往返目的地,且于第二返程日期,从所述第二往返目的地返回所述第二往返出发地的机票数据;即往返查询请求查询的是一个日期组合状态下在两个地点之间往返的机票信息,包括一个去程和一个与去程对应的返程。所述往返查询请求对应的第二机票数据满足一所述往返存储条件时,该第二机票数据的第二去程日期、第二往返出发地、第二往返目的地和第二返程日期分别与该往返存储条件的第一去程日期、第一往返出发地、第一往返目的地和第一返程日期相同。例如,用户查询6月20日从北京到厦门,且6月24日从厦门返回到北京的往返机票数据。在旅游平台输入查询请求后,旅游平台的服务器从各个航空公司的服务器获取第二机票数据。查询完成后,判断缓存数据库中是否存在6月20日从北京到厦门,且6月24日从厦门返回到北京的往返存储条件,如果存在,则处理该第二机票数据并存储。其中,去程时间6月20日,返程时间6月24日,出发地北京,目的地厦门四个维度必须均相同,否则不满足对应的存储条件。即该实施例中是以每天作为时间粒度,来建立低价缓存数据库的。在主动查询时,以天为单位检查被动查询生成的机票低价数据是否过期。因为主动查询会提前判断缓存数据的过期时间,并且可能大部分缓存数据是被动查询生成的,这样也就减少了查询航空公司的服务器的次数。主动查询对于系统资源的消耗与旅游平台的使用者规模关联,用户数越多,被动查询的数据量越大,则主动查询的执行频率便会越低,效率也会相应提高,一次运行的周期总长也会缩短,低价缓存的数据新鲜度由此相比主动查询单独执行的方式会得到提高。总体上来说,根据旅游平台使用用户的规模,主被动查询作为相互补充的方式,如果用户规模较大,则每轮遍历中主动查询执行的次数会减少,如果用户规模较小,则每轮遍历中主动查询执行的次数则较多,用户规模越大,主动查询方式也就可以更有效地将资源使用到更新的航线上。如图4所示,在一个具体实施例中,本发明还创建热门航线数据表,即存储各种预设热门航线的相关信息。例如创建热门航线数据表如下表1:表1热门航线数据表出发地(departcity)目的地(arrivalcity)航线类型(triptype)上海(sha)纽约(nyc)单程(ow)北京(bjs)纽约(nyc)单程(ow)上海(sha)伦敦(lon)往返(rt)可以根据热门航线中单程航线创建单程存储条件,具体地,创建单程存储条件可以包括如下步骤:在所述缓存数据库中创建多个预设单程航线,所述预设单程航线包括单程时间范围、单程航线出发地和单程航线目的地,其中各个所述预设单程航线的单程时间范围包括n个日期,n≥1;根据该n个日期分别创建n个单程存储条件,该n个单程存储条件的第一单程出发地和第一单程目的地分别与对应的预设单程航线的单程航线出发地和单程航线目的地相同。例如,定义上海到纽约的单程航线的单程时间范围为未来90天,即包含有90个日期,根据这90个日期可以创建90个单程存储条件,这90个单程存储条件的出发地均为上海,目的地均为纽约。同样地,可以根据热门航线中往返航线创建往返存储条件,具体地,创建往返存储条件包括如下步骤:在所述缓存数据库中创建多个预设往返航线,各个所述预设往返航线包括去程时间范围、往返航线出发地、往返航线目的地和返程时间范围,其中各个所述预设往返航线的去程时间范围包括x个日期,返程时间范围包括每个去程日期增加(y1,y2)个自然日,x≥1,y2≥y1≥0;该去程时间范围和返程时间范围组成x*(y2-y1+1)个往返日期组合,根据该往返日期组合创建x*(y2-y1+1)个往返存储条件,各个所述往返存储条件的第一往返出发地和第一往返目的地分别与该预设往返航线的往返航线出发地和往返航线目的地相同。即各个所述往返存储条件的第一去程日期落入该x个日期之内,且第一返程日期落入第一去程日期增加(y1,y2)个自然日的日期之内。例如,定义上海到伦敦的往返航线的去程时间范围为未来45天,返程时间范围是大于对应去程时间的2-8天。则该去程时间范围和返程时间范围会形成45*7个时间组合,据此可以分割为45*7个往返存储条件,各个往返存储条件的出发地均为上海,目的地均为伦敦。假设单程的一个航线均会产生90个单程存储条件,往返的一个航线均会产生45*7=315个请求,如果缓存数据库保存有2000个单程航线,3000个往返航线,则需要做出的单次的可简单全部覆盖的最少的请求数为:2000*90+3000*315=1125000,即会产生非常多的请求数量。考虑到数据新鲜度和在线用户规模,实际的请求数会多出许多倍。如果简单采用主动查询方式来维护这个缓存数据库,则会出现很大的数据查询量,对旅游平台的系统资源和负载承载都是很大的挑战,遍历周期会相应延长,无法保证数据及时更新,也就影响了数据新鲜度。而采用主动查询和被动查询的形式相结合的方式,被动查询会对主动查询的数据进行一个补充和更新,从而缓解了被动查询的任务量,遍历周期缩短,提高数据更新的及时性。进一步地,还可以维护符合多数低价数据场景的航线,可以一次性得到多条件,多数据范围的航空销售数据。即所述方法还可以包括单程航线展示,所述单程航线展示包括如下步骤:在所述缓存数据库中查询各个所述预设单程航线中n个单程存储条件的第一机票数据;将该n个单程存储条件的第一机票数据统一以用户界面的形式推送至用户。同样地,还可以包括往返航线展示,所述往返航线展示包括如下步骤:在所述缓存数据库中查询各个所述预设往返航线中x*(y2-y1+1)个往返存储条件的第一机票数据;将该x*(y2-y1+1)个往返存储条件的第一机票数据统一以用户界面的形式推送至用户。例如,旅游平台可以一次性展示多个航线90天内的所有最低价数据,有利于旅游平台的销售推广,显示场景也可以得到丰富。进一步地,所述单程查询请求对应的第二机票数据包括于第二单程日期、从所述第二单程出发地到第二单程目的地的多个航班数据;各个所述单程存储条件所对应的第一机票数据包括于第一单程日期,从所述第一单程出发地到第一单程目的地的机票最低价格;所述被动查询还包括如下步骤:根据满足一单程存储条件的第二机票数据计算该单程存储条件下的机票最低价格,将计算得到的机票最低价格存储至缓存数据库,作为该单程存储条件的第一机票数据。同样地,所述往返查询请求对应的第二机票数据包括于第二去程日期,从第二往返出发地到第二往返目的地,且于第二返程日期,从所述第二往返目的地返回所述第二往返出发地的多个航班数据;各个所述往返存储条件所对应的第一机票数据包括于第一去程日期,从所述第一往返出发地到第一往返目的地,且于第一返程日期,从所述第一往返目的地返回所述第一往返出发地的机票最低价格;所述被动查询还包括如下步骤:根据满足一往返存储条件的第二机票数据计算该往返存储条件下的机票最低价格,将计算得到的机票最低价格存储至缓存数据库,作为该往返存储条件的第一机票数据。即,被动查询得到的第二机票数据可以是这一天中各个时刻的航班数据,可以包括各个航班所属的航空公司、精确时刻、准点情况、机票价格、优惠情况等等,方便用户获知购买机票时想要了解的情况。根据一天中多个航班的机票价格进行比较,找出其中的最低价格,将该最低价格作为敌人机票数据存储至缓存数据库中。同样地,第一机票数据还可以是当天机票价格的平均值,方便用户了解机票价格随时间的变化趋势,也可以是当天机票分时段的最低价格,例如,早上8点到12点之间最低价格、12点到18点之间最低价格等等,方便用户根据具体时段来了解机票价格,此处仅为列举,在实际应用中,第一机票数据的类型和格式可以根据需要进行设置,均属于本发明的保护范围之内。同样地,从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库,包括如下步骤:从各个航空公司的服务器获取满足需要更新的预设存储条件的第二机票数据;根据该需要更新的预设存储条件的第二机票数据计算该预设存储条件下的机票最低价格;将该预设存储条件下的机票最低价格作为该需要更新的预设存储条件所对应的第一机票数据。即,在主动查询时,从各个航空公司的服务器获取的也是第二机票数据,将第二机票数据处理成预设格式后再存储至缓存数据库中,此处处理方式仅为举例,在实际应用中不以此为限。如图5所示,本发明实施例还提供一种主被动组合获取机票数据的系统,包括:缓存数据库100,用于创建多个预设存储条件,并存储各个所述预设存储条件所对应的第一机票数据;主动查询模块201,用于依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及主动数据获取模块202,用于从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;用户请求响应模块301,用于根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;被动查询模块302,用于判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。该主被动组合获取机票数据的系统可以架设在旅游平台的服务器上,与各个航空公司的服务器进行通信,并且优选可以提供用户界面供用户查看相关信息。进一步地,本发明实施例还提供一种主被动组合获取机票数据的设备,包括处理器和存储器,该存储器中存储有程序;所述处理器执行所述程序时,执行主动查询和被动查询的操作,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。该主被动组合获取机票数据的设备可以是个人电脑或移动设备,例如手机、平板电脑、笔记本电脑等。其中包含有可以执行计算机程序的处理器和可以存储和读写数据的存储器。本发明实施例还提供一种存储介质,用于存储程序,所述程序被执行时使得至少一处理器执行主动查询和被动查询的操作,其中:所述主动查询包括:在一缓存数据库中创建多个预设存储条件;依次遍历各个所述预设存储条件,判断所述缓存数据库中是否存在各个所述预设存储条件所对应的第一机票数据;如果一预设存储条件所对应的第一机票数据存在且最近一次更新时刻距离当前时刻的时间大于预设时限或者该第一机票数据不存在,则定义该预设存储条件为需要更新,否则,定义该预设存储条件为无需更新;以及从各个航空公司的服务器获取需要更新的预设存储条件所对应的第一机票数据,并存储至所述缓存数据库;所述被动查询包括:接收到用户的查询请求,根据所述查询请求从各个航空公司的服务器获取对应的第二机票数据,并将第二机票数据返回至用户;判断所述第二机票数据是否满足所述预设存储条件;以及将满足一预设存储条件的第二机票数据处理成预设格式并存储至所述缓存数据库,作为该预设存储条件的第一机票数据。该存储介质可以是设置于电子设备上的存储器,也可以是移动硬盘、u盘、光盘等存储设备,电子设备可以包括但不限于个人电脑、笔记本电脑、服务器等等。在执行该存储介质中存储的程序时,可以同时实现主动查询和被动查询,将两者结合起来,被动查询作为主动查询的补充和更新,缩短主动查询的周期,提高缓存数据库中机票数据的新鲜度。本发明的主被动组合获取机票数据的方法、系统、设备及存储介质,具有如下优点:与现有技术相比,本发明提供了一种主动查询和被动查询相结合的机票数据获取方案,通过保存被动查询时的热门航线数据,减少需要获取低价数据而请求航司系统的查询次数;通过主动查询遍历热门航线的机票数据,实时更新,缩短主动查询机票数据的周期,提高旅游平台显示航空公司低价缓存数据的新鲜度;从而丰富旅游平台快速显示航空公司销售数据的使用场景,在主动查询时可以将资源有效分配到需要更新的航线数据上,提高系统资源利用率。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1