CN113918742A - 列车实际运行图数据存储方法及装置 - Google Patents

列车实际运行图数据存储方法及装置 Download PDF

Info

Publication number
CN113918742A
CN113918742A CN202111152630.7A CN202111152630A CN113918742A CN 113918742 A CN113918742 A CN 113918742A CN 202111152630 A CN202111152630 A CN 202111152630A CN 113918742 A CN113918742 A CN 113918742A
Authority
CN
China
Prior art keywords
actual operation
diagram data
application server
operation diagram
data
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
Application number
CN202111152630.7A
Other languages
English (en)
Inventor
牛志强
李晓刚
王翯
吕文龙
蒋湘宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Traffic Control Technology TCT Co Ltd
Beijing MTR Construction Administration Corp
Original Assignee
Traffic Control Technology TCT Co Ltd
Beijing MTR Construction Administration Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Traffic Control Technology TCT Co Ltd, Beijing MTR Construction Administration Corp filed Critical Traffic Control Technology TCT Co Ltd
Priority to CN202111152630.7A priority Critical patent/CN113918742A/zh
Publication of CN113918742A publication Critical patent/CN113918742A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Train Traffic Observation, Control, And Security (AREA)

Abstract

本发明提供一种列车实际运行图数据存储方法及装置,所述方法包括:主应用服务器对最大序列号进行初始化处理,得到初始序列号;主应用服务器接收车站分机发送的目标实际运行图数据,基于初始序列号对目标实际运行图数据进行编号,得到并将编号后的目标实际运行图数据存储至第一本地缓存文件;主应用服务器基于数据库获取第一本地缓存文件中未上传的实际运行图数据;将未上传的实际运行图数据上传至数据库。本发明实现了实际运行图转发到本地缓存文件的任务和上传至数据库的任务分离,提高了转发实际运行图数据的效率,极大地提升了实际运行图数据的存储效率,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。

Description

列车实际运行图数据存储方法及装置
技术领域
本发明涉及轨道交通技术领域,尤其涉及一种列车实际运行图数据存储方法及装置。
背景技术
列车进出站时,列车自动监控系统(Automatic Train Supervision,ATS)系统的车站分机产生列车的实际运行图数据,并将该列车的实际运行图数据发送至ATS系统的应用服务器,应用服务器的实际运行图数据处理线程周期性地接收并发送该列车的实际运行图数据至ATS系统的操作工作站,同时将该列车的实际运行图数据存储到数据库中。
相关技术中,为了解决时钟的源时间跳变或校时跳变导致列车的实际运行图数据按时间排序出现乱序的问题,对同一列车的所有实际运行图数据按照插入数据库的顺序依次编号,该编号作为列车的实际运行图的序列号,其中,列车的每条实际运行图数据插入数据库之前,均需要查询该列车的实际运行图的最大序列号,在最大序列号的基础上加1作为待插入数据库的列车的实际运行图数据的序列号,这种遍历实际运行图的查询方式效率较低。进一步地,因接收、保存、转发和上传实际运行图至数据库的多个任务均由应用服务器单一线程处理,在大量处理实际运行图数据时,会导致ATS操作工作站(以下简称操作工作站)接收实际运行图数据严重滞后。
因此,相关技术中列车的实际运行图数据存储效率过低的问题亟待解决。
发明内容
本发明提供一种列车实际运行图数据存储方法及装置,用以解决列车的实际运行图数据存储效率过低的问题。
第一方面,本发明提供一种列车实际运行图数据存储方法,包括:
主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
可选地,所述基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据,具体包括:
所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据;
其中,所述未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
可选地,所述对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,具体包括:
所述主应用服务器对所述第一历史实际运行图数据的最大序列号与预设阈值进行求和,得到初始序列号。
可选地,所述得到初始序列号之后,还包括:
所述主应用服务器向备应用服务器发送所述第一本地缓存文件中的历史实际运行图数据的序列号同步消息。
可选地,所述将所述未上传的实际运行图数据上传至所述数据库之后,还包括:
在预设周期内所述主应用服务器向备应用服务器发送已上传的实际运行图数据的序列号同步消息。
可选地,所述主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号之前,还包括:
在所述主应用服务器出现异常的情况下,将备应用服务器升级为主应用服务器;
或者,在所述主应用服务器不存在的情况下,将备应用服务器升级为主应用服务器。
第二方面,本发明提供一种列车实际运行图数据存储装置,包括:
序列号初始化单元,用于主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
数据存储单元,用于所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
数据获取单元,用于所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
数据上传单元,用于所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
可选地,所述数据获取单元,具体包括:
第一获取子单元,用于所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
第二获取子单元,用于所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据;
其中,所述未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述列车实际运行图数据存储方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述列车实际运行图数据存储方法的步骤。
本发明提供的列车实际运行图数据存储方法及装置,通过主应用服务器对第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,接收车站分机发送的目标实际运行图数据,基于初始序列号对目标实际运行图数据进行编号,得到并将编号后的目标实际运行图数据存储至第一本地缓存文件,主应用服务器基于数据库获取第一本地缓存文件中未上传的实际运行图数据,将未上传的实际运行图数据上传至数据库,实现了实际运行图转发到本地缓存文件的任务和上传至数据库的任务分离,提高了转发实际运行图数据的效率,并且对实际运行图数据进行统一编号,使得在实际运行图数据每次插入数据库之前不需要重复查询序列号,极大地提升了实际运行图数据的存储效率,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的列车实际运行图数据存储方法的流程示意图;
图2是本发明提供的转发列车实际运行图数据至本地缓存文件的时序图;
图3是本发明提供的将列车实际运行图数据上传至数据库的时序图;
图4是本发明提供的列车实际运行图数据存储装置的结构示意图;
图5为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决列车的实际运行图数据存储效率过低的问题,本发明实施例提供一种列车实际运行图数据存储方法,图1是本发明实施例提供的列车实际运行图数据存储方法的流程示意图。如图1所示,该方法包括以下步骤:
步骤100、主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号。
需要说明的是,主应用服务器将现有技术中的单个实际运行图数据处理线程分离为实际运行图数据接收转发至本地缓存线程和实际运行图数据上传至数据库线程,这种处理方式实现了操作工作站能够实时显示实际运行图,有效提高了实际运行图数据的转发效率。
需要说明的是,主应用服务器将现有技术中单个列车的实际运行图数据进行编号的技术方案,改进为对所有列车的实际运行图数据进行统一编号,并且在实际运行图数据每次插入数据库的情况下不需要重复查询序列号,能够极大的提升了实际运行图数据的存储效率。
其中,第一本地缓存文件为运营周期内的主应用服务器的本地缓存文件。
运营周期为车站内列车的周期性的运营时长。例如,列车当天凌晨四点至第二天凌晨四点作为一个运营周期。
其中,若超过运营周期,则实际运行图数据的序列号初始化为0。
第一本地缓存文件内存储有该运营周期内所有列车的实际运行图数据。
需要说明的是,第一本地缓存文件与运营周期是一一对应的关系,不同的第一本地缓存文件内存储有不同的运营周期内所有列车的实际运行图数据。
数据库内存储有所有运营周期内的所有列车的实际运行图数据。
第一历史实际运行图数据为第一本地缓存文件和数据库中该运营周期内所有列车的历史实际运行图数据。
需要说明的是,由于目前通信网络中数据的传输效率不高,可能导致不同的应用服务器对应的本地缓存文件内的历史实际运行图数据量存在不统一的情况,在应用服务器升级为主应用服务器后,主应用服务器的第一本地缓存文件内的实际运行图数据量有可能小于数据库内该运营周期内的实际运行图数据量,因此,需要同时从第一本地缓存文件和数据库内获取运营周期内的第一历史实际运行图数据的最大序列号,进而避免在第一本地缓存文件内的实际运行图数据量小于数据库内该运营周期内的实际运行图数据量的情况下实际运行图数据重复上传,导致实际运行图数据的存储效率降低。
一种实施方式中,应用服务器启动后升级为主应用服务器,主应用服务器利用实际运行图数据接收转发至本地缓存线程,从第一本地缓存文件和数据库中获取该运营周期内的第一历史实际运行图数据的最大序列号,并对第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号。
步骤101、所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件。
一种实施方式中,基于所述初始序列号对所述目标实际运行图数据进行编号,具体包括:
主应用服务器按照接收目标实际运行图数据的顺序,从初始序列号之后开始对每个接收到的目标实际运行图数据进行升序编号。
例如,初始序列号为N,接收到的第一个目标实际运行图数据的序列号为N+1,第二个目标实际运行图数据的序列号为N+2。
需要说明的是,为了解决数据库故障并且跨运营周期情况下,未上传的实际运行图数据丢失的问题,本发明实施例增加了故障持久化保存机制。
其中,故障持久化保存机制为将编号后的目标实际运行图数据以JS对象简谱(JavaScript Object Notation,JSON)格式存储至第一本地缓存文件,进行持久化保存。
一种实施方式中,主应用服务器利用实际运行图数据转发至本地缓存线程,接收车站分机发送的目标实际运行图数据,并按照接收目标实际运行图数据的顺序,从初始序列号之后开始对每个接收到的目标实际运行图数据进行升序编号,得到编号后的目标实际运行图数据,将编号后的目标实际运行图数据以JSON格式存储至第一本地缓存文件,进行持久化保存。
进一步地,主应用服务器将编号后的目标实际运行图数据转发至操作工作站,操作工作站实时显示该编号后的目标实际运行图数据。
步骤102、所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据。
第二历史实际运行图数据为数据库中该运营周期内所有列车的历史实际运行图数据。
可选地,所述基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据,具体包括:
所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据。
需要说明的是,在主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号中,若第一历史实际运行图数据的最大序列号为第一本地缓存文件中的实际运行图数据的序列号,表明第一本地缓存文件的历史实际运行图数据量大于数据库中该运营周期内的历史实际运行图数据量,则执行主应用服务器获取第一本地缓存文件中第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据的步骤。
若第一历史实际运行图数据的最大序列号为数据库中该运营周期内的实际运行图数据的序列号,表明第一本地缓存文件的历史实际运行图数据量小于数据库中该运营周期内的历史实际运行图数据量,则不执行主应用服务器获取第一本地缓存文件中第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据的步骤,主应用服务器直接将接收到的目标实际运行图数据上传至数据库中。
需要说明的是,根据数据库中第二历史实际运行图数据的最大序列号获取第一本地缓存文件中该最大序列号对应的第三历史实际运行图数据,表明第三历史实际运行图数据为实际运行图数据从第一本地缓存文件上传至数据库的续传位置。
其中,未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
一种实施方式中,主应用服务器利用实际运行图数据上传至数据库线程,从数据库中获取该运营周期内的第二历史实际运行图数据的最大序列号,并获取第一本地缓存文件中第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据,其中,第三历史实际运行图数据之后的所有实际运行图数据为未上传的实际运行图数据。
步骤103、所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库。
一种实施方式中,主应用服务器利用实际运行图数据上传至数据库线程,批量读取未上传的实际运行图数据,并将未上传的实际运行图数据上传至数据库,若上传成功,则更新实际运行图数据的上传进度,若上传失败,则在上传数据库线程的下一个周期重新上传。
本发明实施例提供的列车实际运行图数据存储方法,通过主应用服务器对第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,接收车站分机发送的目标实际运行图数据,基于初始序列号对目标实际运行图数据进行编号,得到并将编号后的目标实际运行图数据存储至第一本地缓存文件,主应用服务器基于数据库获取第一本地缓存文件中未上传的实际运行图数据,将未上传的实际运行图数据上传至数据库,实现了实际运行图转发到本地缓存文件的任务和上传至数据库的任务分离,提高了转发实际运行图数据的效率,并且对实际运行图数据进行统一编号,使得在实际运行图数据每次插入数据库之前不需要重复查询序列号,极大地提升了实际运行图数据的存储效率,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。
基于上述实施例的内容,所述对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,具体包括:
所述主应用服务器对所述第一历史实际运行图数据的最大序列号与预设阈值进行求和,得到初始序列号。
需要说明的是,对第一历史实际运行图数据的最大序列号进行初始化操作,能够有效保证运营周期内所有列车的实际运行图数据都能采用统一编号的方式进行编号,且每个实际运行图数据的序列号都不相同。
一种实施方式中,主应用服务器获取第一历史实际运行图数据中的最大序列号,将最大序列号与预设阈值求和,得到初始序列号,例如,预设阈值为200000。
本发明实施例提供的列车实际运行图数据存储方法,主应用服务器获取第一历史实际运行图数据中的最大序列号,将最大序列号与预设阈值求和,得到初始序列号,实现对实际运行图数据进行统一编号管理,进而使得在实际运行图数据每次插入数据库之前不需要查询序列号,极大地提升了实际运行图数据的存储效率。
基于上述实施例的内容,所述得到初始序列号之后,还包括:
所述主应用服务器向备应用服务器发送所述第一本地缓存文件中的历史实际运行图数据的序列号同步消息。
可选地,备应用服务器基于序列号同步消息更新第二本地缓存文件中的历史实际运行图数据的序列号。
需要说明的是,主应用服务器向备应用服务器发送第一本地缓存文件中的历史实际运行图数据的序列号同步消息,是为了保证第二本地缓存文件与第一本地缓存文件中相同实际运行图数据的序列号相同,进而适用于主备倒切的应用场景。
其中,第二本地缓存文件为运营周期内的备应用服务器的本地缓存文件。
第二本地缓存文件内存储有该运营周期内所有列车的实际运行图数据。
其中,每个第二本地缓存文件与运营周期是一一对应的关系,不同的第二本地缓存文件内存储有不同运营周期内所有列车的实际运行图数据。
其中,在相同运营周期内,第二本地缓存文件与第一本地缓存文件的实际运行图数据相同,且相同实际运行图数据的序列号相同。
一种实施方式中,主应用服务器向备应用服务器发送第一本地缓存文件中的历史实际运行图数据的序列号同步消息,备应用服务器基于序列号同步消息更新第二本地缓存文件中的历史实际运行图数据的序列号,其中,第二本地缓存文件为运营周期内备应用服务器的本地缓存文件。
本发明实施例提供的列车实际运行图数据存储方法,主应用服务器向备应用服务器发送第一本地缓存文件中的历史实际运行图数据的序列号同步消息,备应用服务器基于序列号同步消息更新第二本地缓存文件中的历史实际运行图数据的序列号,能够有效应用于主备倒切的应用场景中,并通过主应用服务器和备应用服务器多机保证实际运行图的序列号在启动、转发至本地缓存线程、主备倒切和跨运营周期过程中的唯一性和准确性。
基于上述实施例的内容,所述备应用服务器基于所述序列号同步消息更新第二本地缓存文件中的历史实际运行图数据的序列号之后,还包括:
所述备应用服务器接收所述车站分机发送的所述目标实际运行图数据;
所述备应用服务器基于所述更新后的第二本地缓存文件中的历史实际运行图数据的序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据;
所述备应用服务器将所述编号后的目标实际运行图数据存储至所述更新后的第二本地缓存文件。
一种实施方式中,所述备应用服务器基于所述更新后的第二本地缓存文件中的历史实际运行图数据的序列号对所述目标实际运行图数据进行编号,具体包括:
备应用服务器从更新后的第二本地缓存文件和数据库中获取该运营周期内的历史实际运行图数据的初始序列号;
从初始序列号之后开始对目标实际运行图数据进行升序编号。
需要说明的是,该初始序列号为对第一历史实际运行图数据的最大序列号进行初始化处理后的序列号。
一种实施方式中,车站分机同时向主应用服务器和备应用服务器发送目标实际运行图数据,备应用服务器从更新后的第二本地缓存文件和数据库中获取该运营周期内的历史实际运行图数据的初始序列号,从初始序列号之后开始对目标实际运行图数据进行升序编号,得到编号后的目标实际运行图数据,备应用服务器将编号后的目标实际运行图数据以JSON格式存储至更新后的第二本地缓存文件,进行持久化保存。
本发明实施例提供的列车实际运行图数据存储方法,车站分机同时向主应用服务器和备应用服务器发送目标实际运行图数据,备应用服务器从更新后的第二本地缓存文件和数据库中获取该运营周期内的历史实际运行图数据的初始序列号,从初始序列号之后开始对目标实际运行图数据进行升序编号,得到编号后的目标实际运行图数据,备应用服务器将编号后的目标实际运行图数据以JSON格式存储至更新后的第二本地缓存文件,进行持久化保存,通过主应用服务器和备应用服务器多机实现对本地缓存线程的管理,能够有效应用于主备倒切的应用场景中。
基于上述实施例的内容,所述将所述未上传的实际运行图数据上传至所述数据库之后,还包括:
在预设周期内所述主应用服务器向备应用服务器发送已上传的实际运行图数据的序列号同步消息。
已上传的实际运行图数据的序列号同步消息表示已上传的实际运行图数据的最大序列号位置。
需要说明的是,在主备倒切的场景下,备应用服务器升级为主应用服务器,则根据已上传的实际运行图数据的最大序列号位置获取第二本地缓存文件中未上传的实际运行图数据,并将未上传的实际运行图数据继续上传至数据库。
一种实施方式中,在主应用服务器将第一本地缓存文件中未上传的实际运行图数据成功上传至数据库后,向备应用服务器发送已上传的实际运行图数据的序列号同步消息,备应用服务器获取到已上传的实际运行图数据的最大序列号位置。
进一步地,若该运营周期内的第一本地缓存文件内所有实际运行图数据全部上传至数据库,则分别删除该运营周期内的第一本地缓存文件和第二本地缓存文件。
本发明实施例提供的列车实际运行图数据存储方法,在主应用服务器将第一本地存储文件中未上传的实际运行图数据成功上传至数据库后,向备应用服务器发送已上传的实际运行图数据的序列号同步消息,备应用服务器获取到已上传的实际运行图数据的最大序列号位置,若该运营周期内的第一本地缓存文件内所有实际运行图数据全部上传至数据库,则分别删除该运营周期内的第一本地缓存文件和第二本地缓存文件,能够有效应用于主备倒切的应用场景中,并通过主应用服务器和备应用服务器多机保证实际运行图的序列号在启动、转发至本地缓存线程、主备倒切和跨运营周期过程中的唯一性和准确性,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。
基于上述实施例的内容,所述列车实际运行图数据存储方法,还包括:
在所述主应用服务器出现异常的情况下,将备应用服务器升级为主应用服务器;
或者,在所述主应用服务器不存在的情况下,将备应用服务器升级为主应用服务器。
需要说明的是,在主应用服务器出现异常或不存在的情况下,将备应用服务器升级为主应用服务器,升级后的备应用服务器重复执行上述实施例中主应用服务器的相关操作,在此不再赘述。
本发明实施例提供的列车实际运行图数据存储方法,在主应用服务器出现异常或不存在的情况下,将备应用服务器升级为主应用服务器,升级后的备应用服务器重复执行上述实施例中主应用服务器的相关操作,通过主应用服务器和备应用服务器多机保证实际运行图的序列号在启动、转发至本地缓存线程、主备倒切和跨运营周期过程中的唯一性和准确性,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。
结合图2具体说明主应用服务器转发列车实际运行图数据至本地缓存文件的过程。图2是本发明实施例提供的转发列车实际运行图数据至本地缓存文件的时序图。如图2所示,该方法包括以下步骤:
步骤200、应用服务器启动后升级为主应用服务器,主应用服务器查询主应用服务器的本地缓存文件和数据库中运营周期的实际运行图数据的最大序列号,在最大序列号的基础上加200000,得到初始序列号SN;
步骤201、主应用服务器向备应用服务器发送序列号同步消息;
步骤202、备应用服务器基于序列号同步消息更新备应用服务器的本地缓存文件中数据运行图数据的序列号;
步骤203、车站分机向主应用服务器发送实际运行图数据后,分别执行步骤206和步骤207;
步骤204、车站分机向备应用服务器发送实际运行图数据,并执行步骤205;
步骤205、备应用服务器将接收到的实际运行图数据的序列号编号为SN+1,并将编号后的实际运行图数据存储至备应用服务器的本地缓存文件;
步骤206、主应用服务器将接收到的实际运行图数据的序列号编号为SN+1,执行步骤209;
步骤207、主应用服务器将编号后的实际运行图数据转发至操作工作站,执行步骤208;
步骤208、操作工作站实时显示实际运行图数据;
步骤209、主应用服务器将编号后的实际运行图数据存储至主应用服务器的本地缓存文件。
结合图3具体说明主应用服务器将列车实际运行图数据上传至数据库的过程。图3是本发明实施例提供的将列车实际运行图数据上传至数据库的时序图。如图3所示,该方法包括以下步骤:
步骤300、主应用服务器查找数据库中运营周期内的实际运行图数据的最大序列号,并在主应用服务器的本地缓存文件中查找最大序列号对应的位置,作为续传位置;
步骤301、主应用服务器基于续传位置读取未上传的实际运行图数据,未上传的实际运行图数据为续传位置之后的所有实际运行图数据;
步骤302、主应用服务器将未上传的实际运行图数据上传至数据库;
步骤303、数据库保存未上传的实际运行图数据;
步骤304、数据库向主应用服务器返回数据上传成功的消息;
步骤305、主应用服务器更新主应用服务器的本地缓存文件中实际运行图数据的续传进度;
步骤306、主应用服务器向备应用服务器发送实际运行图数据的续传进度同步消息;
步骤307、备应用服务器基于接收到的续传进度同步消息,更新备应用服务器的本地缓存文件中的实际运行图数据的续传进度。
下面对本发明提供的列车实际运行图数据存储装置进行描述,下文描述的列车实际运行图数据存储装置与上文描述的列车实际运行图数据存储方法可相互对应参照。
图4是本发明实施例提供的列车实际运行图数据存储装置的结构示意图。如图4所示,该列车实际运行图数据存储装置包括:序列号初始化单元400、数据存储单元410、数据获取单元420和数据上传单元430,其中,
序列号初始化单元400,用于主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
数据存储单元410,用于所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
数据获取单元420,用于所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
数据上传单元430,用于所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
本发明实施例提供的列车实际运行图数据存储装置,通过主应用服务器对第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,接收车站分机发送的目标实际运行图数据,基于初始序列号对目标实际运行图数据进行编号,得到并将编号后的目标实际运行图数据存储至第一本地缓存文件,主应用服务器基于数据库获取第一本地缓存文件中未上传的实际运行图数据,将未上传的实际运行图数据上传至数据库,实现了实际运行图转发到本地缓存文件的任务和上传至数据库的任务分离,提高了转发实际运行图数据的效率,并且对实际运行图数据进行统一编号,使得在实际运行图数据每次插入数据库之前不需要重复查询序列号,极大地提升了实际运行图数据的存储效率,保证了实际运行图数据在数据库故障且跨运营周期场景下的完整性。
可选地,所述数据获取单元420,具体包括:
第一获取子单元,用于所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
第二获取子单元,用于所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据;
其中,所述未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
可选地,所述序列号初始化单元400,具体用于:
所述主应用服务器对所述第一历史实际运行图数据的最大序列号与预设阈值进行求和,得到初始序列号。
可选地,所述列车实际运行图数据存储装置,还包括:
第一消息发送单元,用于所述主应用服务器向备应用服务器发送所述第一本地缓存文件中的历史实际运行图数据的序列号同步消息。
可选地,所述列车实际运行图数据存储装置,还包括:
第二消息发送单元,用于在预设周期内所述主应用服务器向备应用服务器发送已上传的实际运行图数据的序列号同步消息。
可选地,所述列车实际运行图数据存储装置,还包括:升级单元,用于:
在所述主应用服务器出现异常的情况下,将备应用服务器升级为主应用服务器;
或者,在所述主应用服务器不存在的情况下,将备应用服务器升级为主应用服务器。
本发明提供的列车实际运行图数据存储装置能够实现图1至图3的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
图5为本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行列车实际运行图数据存储方法,该方法包括:
主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的列车实际运行图数据存储方法,该方法包括:
主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的列车实际运行图数据存储方法,该方法包括:
主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种列车实际运行图数据存储方法,其特征在于,包括:
主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
2.根据权利要求1所述的列车实际运行图数据存储方法,其特征在于,所述基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据,具体包括:
所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据;
其中,所述未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
3.根据权利要求1所述的列车实际运行图数据存储方法,其特征在于,所述对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号,具体包括:
所述主应用服务器对所述第一历史实际运行图数据的最大序列号与预设阈值进行求和,得到初始序列号。
4.根据权利要求1所述的列车实际运行图数据存储方法,其特征在于,所述得到初始序列号之后,还包括:
所述主应用服务器向备应用服务器发送所述第一本地缓存文件中的历史实际运行图数据的序列号同步消息。
5.根据权利要求1所述的列车实际运行图数据存储方法,其特征在于,所述将所述未上传的实际运行图数据上传至所述数据库之后,还包括:
在预设周期内所述主应用服务器向备应用服务器发送已上传的实际运行图数据的序列号同步消息。
6.根据权利要求1所述的列车实际运行图数据存储方法,其特征在于,所述主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号之前,还包括:
在所述主应用服务器出现异常的情况下,将备应用服务器升级为主应用服务器;
或者,在所述主应用服务器不存在的情况下,将备应用服务器升级为主应用服务器。
7.一种列车实际运行图数据存储装置,其特征在于,包括:
序列号初始化单元,用于主应用服务器基于第一本地缓存文件与数据库获取运营周期内的第一历史实际运行图数据的最大序列号,对所述第一历史实际运行图数据的最大序列号进行初始化处理,得到初始序列号;
数据存储单元,用于所述主应用服务器接收车站分机发送的目标实际运行图数据,基于所述初始序列号对所述目标实际运行图数据进行编号,得到编号后的目标实际运行图数据,将所述编号后的目标实际运行图数据存储至所述第一本地缓存文件;
数据获取单元,用于所述主应用服务器基于所述数据库获取所述运营周期内的第二历史实际运行图数据的最大序列号,基于所述第二历史实际运行图数据的最大序列号获取所述第一本地缓存文件中未上传的实际运行图数据;
数据上传单元,用于所述主应用服务器将所述未上传的实际运行图数据上传至所述数据库;
其中,所述第一本地缓存文件为所述运营周期内的所述主应用服务器的本地缓存文件。
8.根据权利要求7所述的列车实际运行图数据存储装置,其特征在于,所述数据获取单元,具体包括:
第一获取子单元,用于所述主应用服务器获取所述第一本地缓存文件中所述第二历史实际运行图数据的最大序列号对应的第三历史实际运行图数据;
第二获取子单元,用于所述主应用服务器基于所述第三历史实际运行图数据获取所述第一本地缓存文件中未上传的实际运行图数据;
其中,所述未上传的实际运行图数据为第一本地缓存文件中第三历史实际运行图数据之后的所有实际运行图数据。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述列车实际运行图数据存储方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述列车实际运行图数据存储方法的步骤。
CN202111152630.7A 2021-09-29 2021-09-29 列车实际运行图数据存储方法及装置 Pending CN113918742A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111152630.7A CN113918742A (zh) 2021-09-29 2021-09-29 列车实际运行图数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111152630.7A CN113918742A (zh) 2021-09-29 2021-09-29 列车实际运行图数据存储方法及装置

Publications (1)

Publication Number Publication Date
CN113918742A true CN113918742A (zh) 2022-01-11

Family

ID=79237225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111152630.7A Pending CN113918742A (zh) 2021-09-29 2021-09-29 列车实际运行图数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN113918742A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914418A (zh) * 2023-03-09 2023-04-04 北京全路通信信号研究设计院集团有限公司 一种铁路接口网关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115914418A (zh) * 2023-03-09 2023-04-04 北京全路通信信号研究设计院集团有限公司 一种铁路接口网关设备
CN115914418B (zh) * 2023-03-09 2023-06-30 北京全路通信信号研究设计院集团有限公司 一种铁路接口网关设备

Similar Documents

Publication Publication Date Title
CN105677469B (zh) 定时任务执行方法及装置
CN102769667B (zh) 一种id生成方法、装置和系统
CN111382134B (zh) 大规模分布式存储系统中数据恢复方法及装置
CN111917897B (zh) 标识生成方法、装置、设备及存储介质
CN110502310B (zh) 一种虚拟机的时间同步方法及装置
CN109298924B (zh) 定时任务的管理方法、计算机可读存储介质和终端设备
CN105491115A (zh) 消息推送装置及方法
CN111400104B (zh) 数据同步方法及装置、电子设备、存储介质
JP2016095586A (ja) 分散制御システム、制御装置、制御方法及びプログラム
CN113918742A (zh) 列车实际运行图数据存储方法及装置
CN109918116A (zh) 运维对象支撑方法及系统
CN110196749B (zh) 虚拟机的恢复方法及装置、存储介质及电子装置
CN111338787B (zh) 一种数据处理方法及装置、存储介质、电子装置
CN113448380A (zh) 会计日期同步切换的方法及装置
CN113672284B (zh) 一种指令执行方法、系统、电子设备以及存储介质
CN114285695B (zh) 通信方法、装置、设备、系统和存储介质
CN108228812A (zh) 自适应的主节点切换方法及装置
CN111782229A (zh) 一种小程序启动方法、装置及电子设备
CN111090519A (zh) 任务执行方法、装置、存储介质及电子设备
CN102710356B (zh) 一种实时冗余主站数据同步方法
CN110413398B (zh) 任务调度方法、装置、计算机设备和存储介质
CN112131188A (zh) 批量文件分发处理方法及装置
CN110968646A (zh) 一种嵌入式系统数据库同步方法、装置及存储介质
CN107563942B (zh) 一种物流数据批量处理方法、物流处理系统以及处理装置
CN113515574B (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