酒店的数据库的更新方法和更新系统的制作方法

文档序号:9597954阅读:475来源:国知局
酒店的数据库的更新方法和更新系统的制作方法
【技术领域】
[0001 ] 本发明涉及一种酒店的数据库的更新方法和更新系统。
【背景技术】
[0002] 随着酒店行业的兴起,酒店内的住房在各大网站上的售卖情况互不相同,通常, 酒店内的住房除了在线下售卖外,还会将酒店内的住房发布至各大OTA (Online Travel Agent,在线旅游社)上进行线上售卖。为了将OTA内的酒店的住房的售卖信息与其它OTA 上的酒店的住房的售卖信息及时做对比,从而更好地为OTA服务。现有技术中通常采用逐 一对比的方式进行对比,然而,各0ΤΑ上需对比的酒店内的住房信息量很大,逐一对比的方 式不仅会产生数据对比任务的排队延迟,对比任务的积压,使得在0ΤΑ内酒店的住房的信 息变更时,不能达到对比数据的及时更新,还会造成对原有数据库访问量大大增大,导致数 据库堵塞。可见,现有技术无法对酒店内的数据库内的对比数据及时更新,且对数据库的 I0(Input/0utput,输入/输出)消耗很大。

【发明内容】

[0003] 本发明要解决的技术问题是为了克服现有技术的酒店内的数据库内的对比数据 无法及时更新,且对数据库的10消耗很大的缺陷,提供一种酒店的数据库的更新方法和更 新系统。
[0004] 本发明是通过下述技术方案来解决上述技术问题的:
[0005] -种酒店的数据库的更新方法,其特点在于,所述更新方法以多线程方式执行,每 一酒店的房态在一第一 0ΤΑ上的状态为第一状态,每一酒店的房态在一第二0ΤΑ上的状态 为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量为N,N大于或等 于1,所述更新方法包括:
[0006] Si、并行加载N个对比任务内的每一酒店在所述日期中的第一状态和第二状态,并 将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为一房态对比数据;
[0007] S2、并行判断所述房态对比数据是否与一数据库中存储的房态对比数据不同,并 在所述第一状态发生变化,和/或,所述第二状态发生变化时执行步骤S3;
[0008] S3、将状态发生变化了的房态对比数据在所述数据库里做并行更新;
[0009] 其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型 的价格和酒店内的房型的服务。
[0010] 在本方案中,多个对比任务的情形可为多个酒店在同一日期中的状态进行的对 比,也可为一个酒店在多个日期中的状态的对比,还可为多个酒店在多个日期中的状态的 对比。本发明以多线程的方式并行执行,能够避免产生对比任务的积压,缩短了对比任务的 执行时长,能够保持实时的对比速度,且仅对状态产生变化的酒店内的房型在数据库里更 新,减少了对数据库的10消耗。
[0011] 较佳地,步骤Si包括:
[0012] Sn、从分布式缓存中并行加载N个对比任务内的每一酒店在所述日期中的第一状 态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期中的第二状态;
[0013] S12、将每一酒店的第一状态和第二状态存储至本地,并将N个对比任务内的每一 酒店在所述日期中的第一状态和第二状态作为房态对比数据。
[0014] 其中,从分布式缓存中加载第一状态和从爬虫数据库中加载第二状态,能够快速 获得每一对比任务中的酒店内的住房的第一状态和第二状态。
[0015] 较佳地,步骤S3包括:
[0016] S31、将同一酒店内的同一房型在价格或服务上发生变化的房态对比数据放入更新 队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列,将同一酒店内减少的 房型形成的房态对比数据放入删除队列;
[0017] S32、并行将所述更新队列、所述插入队列和所述删除队列中的房态对比数据提交 至所述数据库中。
[0018] 较佳地,以Cc表示所述第一 0ΤΑ存储的国内所有城市的ID的集合,以He表示所 述第一 0ΤΑ存储的国内所有酒店的ID的集合,步骤Sn中所述分布式缓存的形成方法包括:
[0019] Sm、对该些城市的ID进行分组,并将每组中各城市在所述第一 0ΤΑ内的所有酒店 的ID存储至He中;
[0020] S112、以He为循环条件,并行缓存每一酒店的第一状态至所述分布式缓存中。
[0021 ] 较佳地,步骤Si之前包括:
[0022] S1M、建立每一酒店的第一状态和第二状态的匹配关系数据表,所述匹配关系数据 表包括主键ID和与主键ID -一对应的匹配关系数据,所述匹配关系数据包括每一酒店内 的每一房型在所述第一 0ΤΑ上和所述第二0ΤΑ上对应的第一状态和第二状态之间的对应关 系;
[0023] S1Q2、将当前时刻的所述匹配关系数据表的主键ID全量存储到集合A中,并与缓存 中存储的所述匹配关系数据表的主键ID对比;
[0024] S1Q3、将不同的主键ID对应的匹配关系数据更新至缓存中。
[0025] 也即,对于房态对比数据进行对比时,其必然要依托于第一 0ΤΑ,第二0ΤΑ,第一 0ΤΑ内的酒店的ID以及第二0ΤΑ内的酒店的ID四者之间形成的对应关系,从而查找到同一 酒店内的房型的状态数据的对应关系,以作对比。而这样的对应关系能够保证最终获得的 同一酒店内的房型的第一状态和第二状态的数据是相对可靠的。
[0026] 较佳地,步骤S1Q3包括:
[0027] 将缓存中存储有但当前时刻集合A未存储的主键ID所对应匹配关系数据从所述 缓存中删除,将缓存中未存储有但当前时刻集合A存储的主键ID所对应匹配关系数据增加 至所述缓存中。
[0028] 本发明还提供一种酒店的数据库的更新系统,其特点在于,所述更新系统以多线 程方式执行,每一酒店的房态在一第一 0ΤΑ上的状态为第一状态,每一酒店的房态在一第 二0ΤΑ上的状态为第二状态,以一酒店和一日期作为一个对比任务,所述对比任务的数量 为N,N大于或等于1,所述更新系统包括一加载模块、一判断模块和一更新模块;
[0029] 所述加载模块用于并行加载N个对比任务内的每一酒店在所述日期中的第一状 态和第二状态,并将N个对比任务内的每一酒店在所述日期中的第一状态和第二状态作为 一房态对比数据;
[0030] 所述判断模块用于并行判断所述房态对比数据是否与一数据库中存储的房态对 比数据不同,并在所述第一状态发生变化,和/或,所述第二状态发生变化时调用所述更新 丰吴块;
[0031] 所述更新模块用于将状态发生变化了的房态对比数据在所述数据库里做并行更 新;
[0032] 其中,所述第一状态和所述第二状态均包括酒店内的房型的数量、酒店内的房型 的价格和酒店内的房型的服务。
[0033] 较佳地,所述加载模块包括一状态加载模块和一本地存储模块;
[0034] 所述状态加载模块用于从分布式缓存中并行加载N个对比任务内的每一酒店在 所述日期中的第一状态,从爬虫数据库中并行加载N个对比任务内的每一酒店在所述日期 中的第二状态;
[0035] 所述本地存储模块用于将每一酒店的第一状态和第二状态存储至本地,并将N个 对比任务内的每一酒店在所述日期中的第一状态和第二状态作为房态对比数据。
[0036] 较佳地,所述更新模块包括一队列暂存模块和一提交模块;
[0037] 所述队列暂存模块用于将同一酒店内的同一房型在价格或服务上发生变化的房 态对比数据放入更新队列,将同一酒店内新增的房型形成的房态对比数据放入插入队列, 将同一酒店内减少的房型形成的房态对比数据放入删除队列;
[0038] 所述提交模块用于并行将所述更新队列、所述插入队列和所述删除队列中的房态 对比数据提交至所述数据库中。
[0039] 较佳地,以Cc表示所述第一 0ΤΑ存储的国内所有城市的ID的集合,以He表示所 述第一 0ΤΑ存储的国内所有酒店的ID的集合,所述更新系统还包括一分组模块和一缓存模 块;
[0040] 所述分组模块用于对该些城市的ID进行分组,并将每组中各城市在所述第一 0ΤΑ 内的所有酒店的ID存储至He中;
[0041] 所述缓存模块用于以He为循环条件,并行缓存每一酒店的第一状态以形成所述 分布式缓存。
[0042] 较佳地,所述更新系统还包括一建表模块、一 ID对比模块和一匹配关系数据缓存 丰吴块;
[0043] 所述建表模块用于建立每一酒店的第一状态和第二状态的匹配关系数据表,所述 匹配关系数据表包括主键ID和与主键ID -一对应的匹配关系数据,所述匹配关系数据
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1