CN107885743A - 一种基于缓存的航班余位查询方法 - Google Patents
一种基于缓存的航班余位查询方法 Download PDFInfo
- Publication number
- CN107885743A CN107885743A CN201610866347.3A CN201610866347A CN107885743A CN 107885743 A CN107885743 A CN 107885743A CN 201610866347 A CN201610866347 A CN 201610866347A CN 107885743 A CN107885743 A CN 107885743A
- Authority
- CN
- China
- Prior art keywords
- caching
- information
- query
- flight
- city
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于缓存的航班余位查询方法,根据根据用户航班可用舱位AV查询请求判断是否命中缓存;如果命中缓存,则获取缓存中的信息并校验,根据用户航班可用舱位AV查询请求中的参数:出发城市、到达城市、团期是否在预先配置的出发城市、到达城市、团期集合中;否则发起后台查询航信接口获取AV内容,同时当前线程挂起,等待查询结果;当获取到了查询结果,更新缓存中的信息,同时通知挂起的线程,返回AV查询结果。本发明在确保舱位的高准确率上,能有效平衡舱位查询的实时性和服务响应时长。
Description
技术领域
本发明属于航班查询领域,尤其涉及一种基于缓存的航班余位查询方法。
背景技术
在互联网机票的售卖流程中,根据用户的出行需求展示出符合条件的航班、价格、舱位情况等供其选择,为此需要通过航信的航班可用舱位查询接口获取指定出发日期、出发城市、到达城市的可用舱位情况。目前有两种实现:一是对于用户每次的航班查询,都实时调用航信接口获取舱位数据。二是航信接口的查询结果缓存一段时间,再次遇到相同的查询条件,跳过实时查询直接返回缓存的数据。第一种方式的缺点在于航信的可用舱位查询(实时AV,)接口响应时间平均在600毫秒,这么长的时间只是查询环节中的一环,最终导致前端面向用户的查询经常超过1秒,影响用户体验。而且航信的接口有并发限制,在互联网应用的场景下,无法持续为日益增长的用户提供服务。一旦访问用户数过多,直接导致航信接口不可用。航信的接口稳定性直接影响我们对客户服务的稳定性,如果航信在维护接口那么服务是完全中断的。第二种方式的缺点在于缓存固定时间解决了访问速度及并发量的问题,但是因为航班的舱位数据是快速变化的数据,有可能上一秒还有5个舱位,下一秒就卖光了,把可用舱位数据缓存下来导致查询时有舱位,预定时验舱验价无法成功,同样影响用户体验。
发明内容
发明目的:本发明提出一种基于缓存的航班余位查询方法,在确保舱位的高准确率上,能有效平衡舱位查询的实时性和服务响应时长。
技术方案:一种基于缓存的航班余位查询方法,包括如下步骤:
S1:根据根据用户航班可用舱位AV查询请求判断是否命中缓存;如果命中缓存,则执行步骤S2,否则执行步骤S5;
S2:获取缓存中的信息并校验,根据用户航班可用舱位AV查询请求中的参数:出发城市、到达城市、团期是否在预先配置的出发城市、到达城市、团期集合中,如是,执行步骤S3;否则执行步骤S4;
S3:判断缓存中的信息是否失效,如失效,且失效超X分钟或者存在任意一个舱位余位数小于3,则发起后台查询航信接口获取AV内容,获取到实时余位信息后再返回;否则,执行步骤S4;
S4:直接返回缓存信息中的结果;再判断缓存中的信息是否失效,如果有效,结束;否则,则执行步骤S6;
S5:发起后台查询航信接口获取AV内容,同时当前线程挂起,等待查询结果;当获取到了查询结果,更新缓存中的信息,同时通知挂起的线程,返回AV查询结果;
S6:发起后台查询航信接口获取AV内容,当获取到了查询结果,更新缓存中的信息。在大并发的情况下,这种方式可以避免同样条件的请求多次查询接口,带来不必要的接口开销。AV是黑屏里的命令,代表可用舱位查询这个动作。
进一步的,所述判断缓存中的信息是否失效是通过判断缓存中的信息时长是否超过对应的缓存有效时长,如超过则判定为失效。
进一步的,所述缓存有效时长通过查询时间段、团期范围、航线热门度、查询日期是否大促四种因素的参考值按不同的配置组合计算;当无法匹配对应的配置组合时,使用设置的默认缓存有效时长。
进一步的,所述配置组合以HashMap存在内存中,提供更新接口,以根据业务的调整及数据分析变更缓存时长配置。
进一步的,所述更新缓存中的信息还可通过机票售卖的验舱验价、占位流程里的实时AV查询结果通过异步发送的方式进行。
有益效果:相对于现有技术,本发明响应速度大大提高,经实际运行检验,平均接口响应时时长控制在80ms以下;并发量不再受航信接口影响,可以通过增加缓存服务的节点数,不断提高服务的并发数及TPS;避免航信接口的可用性对服务的影响,在航信接口不可用时,AV查询接口依然可以提供服务。经实际测评,使用本发明的方法,可用舱位的准确度能达到较高水平,验舱验价成功率可达到90%-95%;另外,本发明灵活性非常高,可通过后续的运维数据,持续对参数进行优化,提高可用舱位数的准确度,并最大限度保证接口的响应速度。
附图说明
图1本发明的流程图。
具体实施方式
下面将结合附图,对本发明的实施案例进行详细的描述;
一种基于缓存的航班余位查询方法,包括如下步骤:
S1:根据用户航班可用舱位AV查询请求判断是否命中缓存;如果命中缓存,则执行步骤S2,否则执行步骤S5;
S2:获取缓存中的信息并校验,根据用户航班可用舱位AV查询请求中的参数:出发城市、到达城市、团期是否在预先配置的出发城市、到达城市、团期集合中,如是,执行步骤S3;否则执行步骤S4;
S3:判断缓存中的信息是否失效,如失效,且失效超X分钟或者存在任意一个舱位余位数小于3,则发起后台查询航信接口获取AV内容,获取到实时余位信息后再返回;否则,执行步骤S4。此时不再立刻返回缓存数据,而是等待实时AV。用户查询时,先判断缓存中的信息是否失效,若失效并且超时X分钟,不使用缓存中的缓存数据直接返回,而是调用实时av接口,获取到实时余位信息后再返回。还可通过余位数来判断。在配置的航线以及团期内,用户查询时,若缓存中的信息超过缓存时间,并且存在任意一个舱位余位数小于3的情况,不使用缓存中的缓存数据直接返回,而是调用实时av接口,获取到最新的余位信息后再返回。
S4:直接返回缓存信息中的结果;再判断缓存中的信息是否失效,如果有效,结束;否则,则执行步骤S6;
S3:判断是否命中缓存;如果命中缓存,则执行步骤S4,否则执行步骤S5;
S4:不管缓存中的信息是否失效,直接返回缓存信息中的结果;再判断缓存中的信息是否失效,如果有效,结束;否则,则执行步骤S6;
其中,前述判断缓存中的信息是否失效是通过判断缓存中的信息时长是否超过对应的缓存有效时长,如超过则判定为失效。缓存有效时长通过查询时间段、团期范围、航线热门度、查询日期是否大促四种因素的参考值按不同的配置组合计算;当无法匹配对应的配置组合时,使用设置的默认缓存有效时长。
本实施例中给出一种查询时间段、团期范围、航线热门度、查询日期是否大促四种因素的参考值定义:
查询时间段,根据查询的时间凌晨1点到7点参考值为A2,其他时间为A1;
团期范围,根据查询条件的出发时间定义参考值,团期距查询时间3天内参考值为B1,4至10天为B2,11至40天为B3,40天以后为B4;
航线热门度,通过历史统计数据配置一份出发城市、到达城市的参考值表,获得参考值,分为3级,最热门(top200)城市参考值为C1,中等热门(top200-1000)城市为C2,其他为C3;
查询日期是否大促,配置大促日期数据,查询日期符合大促日的参考值为D1,其他参考值为D2;
参考值算出后,按表1排列组合各种条件,找到对应的缓存有效时长,如果配置表中未有对应的配置,则使用一个默认的缓存时长。这个配置表格以HashMap存在内存中,提供一个更新接口,可以随时根据业务的调整及数据分析变更缓存时长配置,优化缓存效果。
表1
组合参考值 | 缓存有效时长(分钟) |
A1+B1+C1+D1 | 5 |
A1+B1+C1+D2 | 8 |
A1+B1+C2+D1 | 8 |
A1+B1+C2+D2 | 10 |
A1+B1+C3+D1 | 10 |
A1+B1+C3+D2 | 15 |
A1+B2+C1+D1 | 8 |
A1+B2+C2+D1 | 10 |
A1+B2+C3+D1 | 15 |
A1+B2+C1+D2 | 10 |
A1+B2+C2+D2 | 15 |
A1+B2+C3+D2 | 60 |
A1+B3+C1+D1 | 10 |
A1+B3+C2+D1 | 20 |
A1+B3+C3+D1 | 30 |
A1+B3+C1+D2 | 20 |
A1+B3+C2+D2 | 30 |
A1+B3+C3+D2 | 120 |
S5:发起后台查询航信接口获取AV内容,同时当前线程挂起,等待查询结果;当获取到了查询结果,更新缓存中的信息,同时通知挂起的线程,返回AV查询结果;在大并发的情况下,这种方式可以避免同样条件的请求多次查询接口,带来不必要的接口开销。
S6:发起后台查询航信接口获取AV内容,当获取到了查询结果,更新缓存中的信息。AV是黑屏里的命令,代表可用舱位查询这个动作。
缓存中的信息更新还可通过机票售卖的验舱验价、占位流程里的实时AV查询结果通过异步发送的方式进行。在后续机票售卖的验舱验价、占位流程里必须使用实时AV来确保用户提交的订单有可用舱位,这里的实时AV查询结果,通过异步发送的方式,把AV缓存里的相关数据进行更新。
Claims (5)
1.一种基于缓存的航班余位查询方法,其特征在于,包括如下步骤:
S1:根据根据用户航班可用舱位AV查询请求判断是否命中缓存;如果命中缓存,则执行步骤S2,否则执行步骤S5;
S2:获取缓存中的信息并校验,根据用户航班可用舱位AV查询请求中的参数:出发城市、到达城市、团期是否在预先配置的出发城市、到达城市、团期集合中,如是,执行步骤S3;否则执行步骤S4;
S3:判断缓存中的信息是否失效,如失效,且失效超X分钟或者存在任意一个舱位余位数小于3,则发起后台查询航信接口获取AV内容,获取到实时余位信息后再返回;否则,执行步骤S4;
S4:直接返回缓存信息中的结果;再判断缓存中的信息是否失效,如果有效,结束;否则,则执行步骤S6;
S5:发起后台查询航信接口获取AV内容,同时当前线程挂起,等待查询结果;当获取到了查询结果,更新缓存中的信息,同时通知挂起的线程,返回AV查询结果;
S6:发起后台查询航信接口获取AV内容,当获取到了查询结果,更新缓存中的信息。
2.根据权利要求1所述的基于缓存的航班余位查询方法,其特征在于,所述判断缓存中的信息是否失效是通过判断缓存中的信息时长是否超过对应的缓存有效时长,如超过则判定为失效。
3.根据权利要求2所述的基于缓存的航班余位查询方法,其特征在于,所述缓存有效时长通过查询时间段、团期范围、航线热门度、查询日期是否大促四种因素的参考值按不同的配置组合计算;当无法匹配对应的配置组合时,使用设置的默认缓存有效时长。
4.根据权利要求3所述的基于缓存的航班余位查询方法,其特征在于,所述配置组合以HashMap存在内存中,提供更新接口,以根据业务的调整及数据分析变更缓存时长配置。
5.根据权利要求1所述的基于缓存的航班余位查询方法,其特征在于,所述更新缓存中的信息还可通过机票售卖的验舱验价、占位流程里的实时AV查询结果通过异步发送的方式进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610866347.3A CN107885743A (zh) | 2016-09-29 | 2016-09-29 | 一种基于缓存的航班余位查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610866347.3A CN107885743A (zh) | 2016-09-29 | 2016-09-29 | 一种基于缓存的航班余位查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107885743A true CN107885743A (zh) | 2018-04-06 |
Family
ID=61769867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610866347.3A Pending CN107885743A (zh) | 2016-09-29 | 2016-09-29 | 一种基于缓存的航班余位查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885743A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783545A (zh) * | 2019-01-24 | 2019-05-21 | 深圳市活力天汇科技股份有限公司 | 一种机票实时推荐方法 |
CN109918387A (zh) * | 2019-02-11 | 2019-06-21 | 深圳市活力天汇科技股份有限公司 | 一种国内机票数据更新方法 |
CN109977144A (zh) * | 2019-03-08 | 2019-07-05 | 深圳市活力天汇科技股份有限公司 | 一种国内机票查询数据接口选择方法 |
CN111784156A (zh) * | 2020-06-30 | 2020-10-16 | 中国民航信息网络股份有限公司 | 座位配额的确定方法及装置、存储介质及电子设备 |
CN112307328A (zh) * | 2020-09-24 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于处理信息的方法和装置 |
CN112950336A (zh) * | 2021-04-16 | 2021-06-11 | 携程商旅信息服务(上海)有限公司 | 机票订单的校验方法、系统、电子设备和存储介质 |
CN113177874A (zh) * | 2021-04-30 | 2021-07-27 | 北京沃东天骏信息技术有限公司 | 一种航司报价数据的查询方法及查询系统 |
CN115269648A (zh) * | 2022-07-07 | 2022-11-01 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249682A1 (en) * | 2003-06-06 | 2004-12-09 | Demarcken Carl G. | Filling a query cache for travel planning |
CN101458706A (zh) * | 2008-11-11 | 2009-06-17 | 航旅信通(北京)信息技术有限公司 | 一种准确查询gds航班缓存数据的方法和系统 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
CN103597503A (zh) * | 2011-06-27 | 2014-02-19 | 阿玛得斯两合公司 | 用于具有提高的搜索效率的售前预订系统的方法和系统 |
CN103729353A (zh) * | 2012-10-10 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 票务信息的搜索方法及服务器 |
CN104753966A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种基于服务器和客户端缓存的资源文件查询方法及系统 |
CN104794191A (zh) * | 2015-04-16 | 2015-07-22 | 北京京东尚科信息技术有限公司 | 一种用于机票数据更新的方法和装置 |
CN105630982A (zh) * | 2015-12-25 | 2016-06-01 | 中国民航信息网络股份有限公司 | 航班数据缓存方法及系统 |
-
2016
- 2016-09-29 CN CN201610866347.3A patent/CN107885743A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249682A1 (en) * | 2003-06-06 | 2004-12-09 | Demarcken Carl G. | Filling a query cache for travel planning |
CN101458706A (zh) * | 2008-11-11 | 2009-06-17 | 航旅信通(北京)信息技术有限公司 | 一种准确查询gds航班缓存数据的方法和系统 |
CN103597503A (zh) * | 2011-06-27 | 2014-02-19 | 阿玛得斯两合公司 | 用于具有提高的搜索效率的售前预订系统的方法和系统 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
CN103729353A (zh) * | 2012-10-10 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 票务信息的搜索方法及服务器 |
CN104753966A (zh) * | 2013-12-25 | 2015-07-01 | 明博教育科技有限公司 | 一种基于服务器和客户端缓存的资源文件查询方法及系统 |
CN104794191A (zh) * | 2015-04-16 | 2015-07-22 | 北京京东尚科信息技术有限公司 | 一种用于机票数据更新的方法和装置 |
CN105630982A (zh) * | 2015-12-25 | 2016-06-01 | 中国民航信息网络股份有限公司 | 航班数据缓存方法及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783545A (zh) * | 2019-01-24 | 2019-05-21 | 深圳市活力天汇科技股份有限公司 | 一种机票实时推荐方法 |
CN109918387A (zh) * | 2019-02-11 | 2019-06-21 | 深圳市活力天汇科技股份有限公司 | 一种国内机票数据更新方法 |
CN109977144A (zh) * | 2019-03-08 | 2019-07-05 | 深圳市活力天汇科技股份有限公司 | 一种国内机票查询数据接口选择方法 |
CN111784156A (zh) * | 2020-06-30 | 2020-10-16 | 中国民航信息网络股份有限公司 | 座位配额的确定方法及装置、存储介质及电子设备 |
CN112307328A (zh) * | 2020-09-24 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 用于处理信息的方法和装置 |
CN112950336A (zh) * | 2021-04-16 | 2021-06-11 | 携程商旅信息服务(上海)有限公司 | 机票订单的校验方法、系统、电子设备和存储介质 |
CN112950336B (zh) * | 2021-04-16 | 2023-02-07 | 携程商旅信息服务(上海)有限公司 | 机票订单的校验方法、系统、电子设备和存储介质 |
CN113177874A (zh) * | 2021-04-30 | 2021-07-27 | 北京沃东天骏信息技术有限公司 | 一种航司报价数据的查询方法及查询系统 |
CN113177874B (zh) * | 2021-04-30 | 2024-05-24 | 北京沃东天骏信息技术有限公司 | 一种航司报价数据的查询方法及查询系统 |
CN115269648A (zh) * | 2022-07-07 | 2022-11-01 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
CN115269648B (zh) * | 2022-07-07 | 2023-08-18 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885743A (zh) | 一种基于缓存的航班余位查询方法 | |
Cho | Tourism forecasting and its relationship with leading economic indicators | |
KR101461606B1 (ko) | 승객 예약 기록과 대응되는 전자 티켓 사이의 여행 데이터를 자동으로 일관되게 유지하는 방법 및 시스템 | |
US7146002B1 (en) | Customer service transaction handling based on transaction history | |
Vergori | Forecasting tourism demand: the role of seasonality | |
Charnes et al. | Evaluating the impacts of operating strategies on efficiency in the US airline industry | |
CN105243169B (zh) | 一种数据查询方法及系统 | |
US20140052481A1 (en) | Itinerary analysis for passenger re-accommodation | |
CN109034575A (zh) | 一种骑手智能调度方法 | |
US10332038B2 (en) | Travel inventory demand modeling | |
Skelcher | Improving the quality of local public services | |
CN103838855A (zh) | 余票更新的方法 | |
CN110460640A (zh) | 一种在线设计数据共享方法及系统 | |
US20080004920A1 (en) | Airline management system generating routings in real-time | |
RU2013140415A (ru) | Усовершенствованная система управления запасами и способ для ее осуществления | |
CN101252451B (zh) | 保证服务质量的Web服务器系统请求区分服务方法与中间件 | |
CN110009293A (zh) | 装修管理系统及方法 | |
CN112464204A (zh) | 账户管理方法和相关产品 | |
US11763406B2 (en) | Method and apparatus for delivery order fee determination and assignment | |
Cowdrey et al. | Applying queueing theory for the optimization of a banking model | |
CN109377317B (zh) | 数据处理方法及装置 | |
CN110381137A (zh) | 基于ceph的对象存储使用量统计方法及系统 | |
CN111339122B (zh) | 一种差旅平台的主动缓存方法、差旅查询方法和相关产品 | |
US20180089774A1 (en) | Method for automatic property valuation | |
CN109146128A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180406 |
|
RJ01 | Rejection of invention patent application after publication |