CN114564502A - 一种基于Redis缓存技术的电力数据补抄方法和系统 - Google Patents
一种基于Redis缓存技术的电力数据补抄方法和系统 Download PDFInfo
- Publication number
- CN114564502A CN114564502A CN202210195267.5A CN202210195267A CN114564502A CN 114564502 A CN114564502 A CN 114564502A CN 202210195267 A CN202210195267 A CN 202210195267A CN 114564502 A CN114564502 A CN 114564502A
- Authority
- CN
- China
- Prior art keywords
- task
- key value
- acquisition
- redis
- copying
- 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
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q9/00—Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2209/00—Arrangements in telecontrol or telemetry systems
- H04Q2209/60—Arrangements in telecontrol or telemetry systems for transmitting utility meters data, i.e. transmission of data from the reader of the utility meter
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Redis缓存技术的电力数据补抄方法和系统,其中,方法包括以下步骤:根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务;若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间;获取键值名称缓存队列中的键值名称,根据键值名称从Redis上获取对应的补抄任务;在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务。通过本发明的技术方案,补抄较为全面可靠,采用Redis缓存技术存储补抄任务,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显,设备空闲时执行补抄任务,充分利用了资源确保采集成功率。
Description
技术领域
本发明涉及电力数据采集技术领域,具体地涉及一种基于Redis缓存技术的电力数据补抄方法和系统。
背景技术
对电力数据进行采集时,与GPRS电表的通讯过程中,容易出现由于GPRS信号干扰导致通讯失败,或者抄表系统出现突发问题在一段时间内未工作等现象,从而引起抄表系统数据采集不成功,遗漏数据。相关技术中,一般通过检索数据库获取执行失败或者未执行的采集任务作为补抄任务,设置定时器定时触发数据补抄。存在以下技术问题:
(1)通过数据库检索查漏,影响抄表系统性能。
(2)对于未在数据库中生成记录的采集点无法进行补抄。
(3)定时补抄机制存在与正常采集任务冲突的情况,容易影响采集效率。
发明内容
本发明的目的在于提供一种基于Redis缓存技术的电力数据补抄方法和系统,通过采集时标计算遗漏采集点,并生成补抄任务,补抄较为全面可靠;采用Redis缓存技术存储补抄任务,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显;在设备空闲时执行补抄任务,充分利用资源确保采集成功率。
在本发明的第一方面,提出了一种基于Redis缓存技术的电力数据补抄方法,包括以下步骤:根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务;若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间;获取键值名称缓存队列中的键值名称,根据所述键值名称从Redis上获取对应的补抄任务;在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务。
本方案中,通过本次采集时间、下次采集时间和上次采集时间来确定是否存在遗漏采集任务,补抄更加全面,即使对于数据库中未生成记录的采集点也可以进行补抄,保障了补抄效果;补抄任务采用Redis缓存技术进行存储,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显,键值名称的设置便于实现补抄任务的调取,而第一失效时间的设置限制了补抄的执行时间,一定程度上避免了数据冗余,以及对缓存的不必要占用情况;在设备空闲时,获取键值名称缓存队列中的键值名称,然后根据键值名称从Redis上获取对应的补抄任务,较为方便,可靠;在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务,既充分利用了资源,也确保了采集成功率。
优选地,所述根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务,具体包括以下步骤:获取本次采集时间与下次采集时间,确定采集周期;从Redis上获取上次采集时间;判断本次采集时间与上次采集时间之差是否大于所述采集周期;若判定本次采集时间与上次采集时间之差大于所述采集周期,则确定存在遗漏采集任务。
优选地,所述根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务,还包括以下步骤:若判定本次采集时间与上次采集时间之差小于或等于所述采集周期,则确定不存在遗漏采集任务,并将上次采集时间更新为本次采集时间存储到Redis上。
本方案中,通过本次采集时间与下次采集时间,确定采集周期,在正常采集中的采集周期改变时,可以同步更改,而且通过判断本次采集时间与上次采集时间之差是否大于采集周期,来确定是否存在遗漏采集任务,遗漏采集任务的确定更为准确可靠。
从Redis上没有获取到上次采集时间时,则为空,并把本次采集时间作为上次采集时间存储到Redis上。
优选地,所述若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间,具体包括以下步骤:当确定存在遗漏采集任务时,生成所述补抄任务,所述补抄任务的时间段为从所述上次采集时间至所述上次采集时间加上所述采集周期;存储所述补抄任务至Redis上,设置其键值名称为“TSN+设备ID+设备类型+任务类型短编码+上次采集时间”;对应设置所述补抄任务的第一失效时间;将上次采集时间更新为上次采集时间与采集周期的加和存储到Redis上。
本方案中,采用Redis缓存技术存储补抄任务,减轻数据库的检索压力提升系统性能,当管理大量设备时效果更加明显,补抄任务设置其键值名称为“TSN+设备ID+设备类型+任务类型短编码+上次采集时间”,便于后续从Redis中检索调取补抄任务;通过对应设置补抄任务的第一失效时间,限制了补抄的执行时间,比如第一失效时间设计为3天,则3天后该补抄任务将从Redis上移除;将上次采集时间更新为上次采集时间与采集周期的加和存储到Redis上,有利于通过重复执行判断本次采集时间与上次采集时间之差是否大于采集周期,来确定是否存在遗漏采集任务,直至本次采集时间与上次采集时间之差小于或等于采集周期,进一步保障了补抄任务的覆盖全面性。
优选地,所述获取键值名称缓存队列中的键值名称,根据所述键值名称从Redis上获取对应的补抄任务,具体包括以下步骤:获取在线设备;判断当前键值名称缓存队列是否有效;若确定当前键值名称缓存队列无效,则清空所述当前键值名称缓存队列,从Redis上获取所有补抄任务的键值名称,存储到所述当前键值名称缓存队列中,并更新设置第二失效时间;判断获取的当前在线设备是否存在执行任务或者待执行任务;若判定当前在线设备不存在执行任务且不存在待执行任务,则确定当前在线设备处于空闲状态;若判定当前在线设备存在执行任务或者待执行任务,则重新获取在线设备;当确定当前在线设备处于空闲状态时,从所述当前键值名称缓存队列中获取一个键值名称,并将其从所述当前键值名称缓存队列中移除;根据所述键值名称从Redis上获取对应的补抄任务,并将其从Redis上移除。
优选地,所述判断当前键值名称缓存队列是否有效,具体包括以下步骤:判断当前键值名称缓存队列是否为空;若判定所述当前键值名称缓存队列为空,则确定所述当前键值名称缓存队列无效;若判定所述当前键值名称缓存队列为非空,则判断当前时间是否已到第二失效时间;若判定当前时间已到第二失效时间,则确定所述当前键值名称缓存队列无效。
本方案中,通过先从Redis上获取所有补抄任务的键值名称,存储到当前键值名称缓存队列中,之后在在线设备处于空闲状态下,通过键值名称从Redis上调取对应的补抄任务,对于空闲补抄模块的缓存占用小,而且效率较高,有效性较强,设置第二失效时间,比如30min,有利于及时更新当前键值名称缓存队列,进一步提高了效率,有利于充分利用设备空闲期执行补抄任务。
当前键值名称缓存队列,也即Keylist,用于保存补抄任务的键值名称,内存对象;键值名称也即补抄任务的键值名称,Key。
优选地,所述在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务,具体包括以下步骤:设置所述补抄任务的执行优先级为最低级别;执行所述补抄任务。
本方案中,设置补抄任务的执行优先级为最低级别,确保了补抄任务执行不与正常采集任务冲突,充分利用资源确保采集成功率。
在本发明的第二方面,提出了一种基于Redis缓存技术的电力数据补抄系统,包括:漏点计算模块,用于根据本次采集时间、下次采集时间和上次采集时间确定是否存在遗漏采集任务,并在确定存在遗漏采集任务,则生成补抄任务发送到Redis上进行存储;Redis缓存模块,与所述漏点计算模块连接,用于存储补抄任务,且对应设置键值名称和第一失效时间,还用于存储上次采集时间;空闲补抄模块,与所述Redis缓存模块连接,用于从Redis上获取对应的补抄任务,并在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务。
本方案中,漏点计算模块负责计算遗漏采集任务,生成补抄任务,补抄更加全面,即使对于数据库中未生成记录的采集点也可以进行补抄,保障了补抄效果;Redis缓存用于存储补抄任务,且补抄任务存在失效时间,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显;空闲补抄模块从Redis上获取对应的补抄任务,并在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务,充分利用资源确保了采集成功率。
在本发明的第三方面,提出了一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
在本发明的第四方面,提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法。
本发明技术方案提出的一种基于Redis缓存技术的电力数据补抄方法和系统具有以下有益技术效果:
(1)通过采集时标计算遗漏采集点,并生成补抄任务,补抄较为全面可靠,即使对于数据库中未生成记录的采集点也可以进行补抄,保障了补抄效果。
(2)采用Redis缓存技术存储补抄任务,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显。
(3)在设备空闲时,获取键值名称缓存队列中的键值名称,然后根据键值名称从Redis上获取对应的补抄任务,较为方便,可靠,在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务,既充分利用了资源,也确保了采集成功率。
附图说明
图1示出了根据本发明一个实施例的基于Redis缓存技术的电力数据补抄方法的流程图;
图2示出了根据本发明另一个实施例的基于Redis缓存技术的电力数据补抄方法的流程图;
图3示出了根据本发明再一个实施例的基于Redis缓存技术的电力数据补抄方法的流程图;
图4示出了根据本发明实施例的基于Redis缓存技术的电力数据补抄系统的架构图;
图5示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了根据本发明的实施例的一种基于Redis缓存技术的电力数据补抄方法的流程图。
如图1所示,根据本发明的实施例的一种基于Redis缓存技术的电力数据补抄方法,包括以下步骤:
S102,根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务;
S104,若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间;
S106,获取键值名称缓存队列中的键值名称,根据键值名称从Redis上获取对应的补抄任务;
S108,在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务。
通过本次采集时间、下次采集时间和上次采集时间来确定是否存在遗漏采集任务,补抄更加全面,即使对于数据库中未生成记录的采集点也可以进行补抄,保障了补抄效果;补抄任务采用Redis缓存技术进行存储,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显,键值名称的设置便于实现补抄任务的调取,而第一失效时间的设置限制了补抄的执行时间,一定程度上避免了数据冗余,以及对缓存的不必要占用情况;在设备空闲时,获取键值名称缓存队列中的键值名称,然后根据键值名称从Redis上获取对应的补抄任务,较为方便,可靠;在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务,既充分利用了资源,也确保了采集成功率。
图2示出了根据本发明的实施例的一种基于Redis缓存技术的电力数据补抄方法的流程图。
图3示出了根据本发明的实施例的一种基于Redis缓存技术的电力数据补抄方法的流程图。
如图2和图3所示,根据本发明的实施例的一种基于Redis缓存技术的电力数据补抄方法,包括以下步骤:
S202,获取本次采集时间与下次采集时间,确定采集周期;
S204,从Redis上获取上次采集时间;
S206,判断是否满足CT-LT>NT-CT,其中,CT表征为本次采集时间,LT表征为上次采集时间,NT表征为下次采集时间,IT=NT-CT,表征为采集周期,也即判断本次采集时间与上次采集时间之差是否大于采集周期;
若对S206判定为是,则执行S208确定存在遗漏采集任务,生成补抄任务,其中,补抄任务的时间段为从上次采集时间至上次采集时间加上采集周期;
S210,存储补抄任务至Redis上,其中,设置补抄任务的键值名称为“TSN+设备ID+设备类型+任务类型短编码+上次采集时间”,并对应设置补抄任务的第一失效时间;
S212,LT=LT+IT,也即将上次采集时间更新为上次采集时间与采集周期的加和,继续执行S206;
若对206的判定为否,则执行S214,更新LT为CT,也即确定不存在遗漏采集任务,并将上次采集时间更新为本次采集时间;
S216,将LT更新到Redis,也即将上次采集时间更新存储到Redis上。
S302,获取在线设备;
S304,判断当前键值名称缓存队列是否有效,具体地,判断当前键值名称缓存队列是否为空;若判定当前键值名称缓存队列为空,则确定当前键值名称缓存队列无效;若判定当前键值名称缓存队列为非空,则判断当前时间是否已到第二失效时间;若判定当前时间已到第二失效时间,则确定当前键值名称缓存队列无效;
若对S304的判定为否,执行S306,清空当前键值名称缓存队列,从Redis上获取所有补抄任务的键值名称,存储到当前键值名称缓存队列中,并更新设置第二失效时间;
若对S304的判定为是,或者已经执行完S306,则执行S308,判断获取的当前在线设备是否处于空闲状态,具体地,判断获取的当前在线设备是否存在执行任务或者待执行任务;若判定当前在线设备不存在执行任务且不存在待执行任务,则确定当前在线设备处于空闲状态,若判定当前在线设备存在执行任务或者待执行任务,则确定当前在线设备不处于空闲状态;
若对S308的判定为否,则返回执行S302;
若对S308的判定为是,则执行S310,从当前键值名称缓存队列中获取一个键值名称,并将其从当前键值名称缓存队列中移除;
S312,根据键值名称从Redis上获取对应的补抄任务,并将其从Redis上移除;
S314,设置补抄任务的执行优先级为最低级别;
S316,执行补抄任务。
根据本发明实施例,还包括:
获取要执行的本次采集任务的键值名称缓存队列;
判断要执行的补超任务是否在所述本次采集任务中;
若所述补超任务的任务类型短编码存在于所述键值名称缓存队列的任务类型短编码中,则将所述补超任务置空;
根据所述键值名称缓存队列的对应采集任务执行采集。
需要说明的是,为检查采集任务与补超任务的重复性,对采集任务的键值名称缓存队列中查看是否存在补超任务,若补超任务的任务类型短编码存在于键值名称缓存队列的任务类型短编码中则将补超任务置空,根据键值名称缓存队列的对应采集任务执行采集,避免任务叠加。
根据本发明实施例,还包括:
完成执行补超任务后,将完成所述补超任务的执行时间存储到Redis上;
根据所述执行时间更新为本次采集时间;
根据所述本次采集时间加上采集周期生成下次采集时间;
根据所述下次采集时间存储到Redis上,并设置采集时间提醒。
需要说明的是,完成执行补超任务后将完成补超任务的执行时间存储到Redis上,将执行时间更新为本次采集时间,根据本次采集时间加上采集周期生成下次采集时间并存储到Redis上同时设置采集时间提醒。
根据本发明实施例,还包括:
获取当前要执行的补超任务,根据补超任务生成补超键值名称缓存队列;
根据所述补超键值名称缓存队列中各补超任务的任务信息制定执行优先级;
所述补超任务的任务信息包括补超任务设备类型和补超任务类型短编码;
根据所述各补超任务的执行优先级对所述补超键值名称缓存队列中各补超任务进行执行排序;
根据所述执行排序执行各补超任务;
当完成某项所述补超任务,将其从所述补超键值名称缓存队列中移除,并继续执行低一级优先级的补超任务。
需要说明的是,针对补超任务的优先级先后执行顺序生成补超键值名称缓存队列,根据任务信息的补超任务设备类型和补超任务类型短编码制定执行优先级并进行执行排序并执行,当完成某项补超任务将其从补超键值名称缓存队列中移除并继续执行低一级优先级的补超任务。
根据本发明实施例,还包括:
根据要执行的多个补超任务的第一失效时间的时间顺序进行排列;
根据当前键值名称缓存队列的第二失效时间与所述各补超任务的第一失效时间进行对比;
若存在大于第二失效时间的所述第一失效时间对应的补超任务,则对所述补超任务进行标记,标记为第二补超任务;
将未标记的所述补超任务保留在当前键值名称缓存队列中并按照所述时间顺序由先到后执行补超任务;
将标记的所述第二补超任务录入下一键值名称缓存队列中进行补超。
需要说明的是,针对补超任务的失效时间和键值名称缓存队列的失效时间进行时间对比和排序,将多个补超任务的第一失效时间与当前键值名称缓存队列的第二失效时间进行对比,对大于第二失效时间的第一失效时间对应的补超任务进行标记为第二补超任务,将未标记的补超任务保留在当前键值名称缓存队列中并按照补超任务的时间顺序由先到后执行补超任务,将标记的第二补超任务录入下一键值名称缓存队列中进行补超,保证键值名称缓存队列失效前到期的补超任务可优先执行补超,减少键值名称缓存队列的容量和任务量。
图4示出了根据本发明实施例的基于Redis缓存技术的电力数据补抄系统的架构图。
如图4所示,根据本发明实施例的基于Redis缓存技术的电力数据补抄系统包括:漏点计算模块402、Redis缓存模块404、空闲补抄模块406,漏点计算模块402,用于根据本次采集时间、下次采集时间和上次采集时间确定是否存在遗漏采集任务,并在确定存在遗漏采集任务,则生成补抄任务发送到Redis上进行存储;Redis缓存模块404,与漏点计算模块402连接,用于存储补抄任务,且对应设置键值名称和第一失效时间,还用于存储上次采集时间;空闲补抄模块406,与Redis缓存模块404连接,用于从Redis上获取对应的补抄任务,并在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务。漏点计算模块402、Redis缓存模块404、空闲补抄模块406相互配合执行根据本发明实施例的基于Redis缓存技术的电力数据补抄方法。
漏点计算模块402负责计算遗漏采集任务,生成补抄任务,补抄更加全面,即使对于数据库中未生成记录的采集点也可以进行补抄,保障了补抄效果;Redis缓存模块404用于存储补抄任务,且补抄任务存在失效时间,减轻了数据库的检索压力,提升了整体系统性能,而且在管理大量设备时效果更加明显;空闲补抄模块406从Redis上获取对应的补抄任务,并在确定补抄任务执行与正常采集任务不冲突时,执行补抄任务,充分利用资源确保了采集成功率。
图5示出了可以用来实施本公开的实施例的电子设备500的示意性框图。如图所示,设备500包括处理单元,即CPU501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可以存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元,即CPU501执行上文所描述的各个方法和处理。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU501执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种基于Redis缓存技术的电力数据补抄方法,其特征在于,包括以下步骤:
根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务;
若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间;
获取键值名称缓存队列中的键值名称,根据所述键值名称从Redis上获取对应的补抄任务;
在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务。
2.根据权利要求1所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务,具体包括以下步骤:
获取本次采集时间与下次采集时间,确定采集周期;
从Redis上获取上次采集时间;
判断本次采集时间与上次采集时间之差是否大于所述采集周期;
若判定本次采集时间与上次采集时间之差大于所述采集周期,则确定存在遗漏采集任务。
3.根据权利要求2所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述根据本次采集时间、下次采集时间和上次采集时间,确定是否存在遗漏采集任务,还包括以下步骤:
若判定本次采集时间与上次采集时间之差小于或等于所述采集周期,则确定不存在遗漏采集任务,并将上次采集时间更新为本次采集时间存储到Redis上。
4.根据权利要求2所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述若确定存在遗漏采集任务,则生成补抄任务,存储到Redis上,并对应设置键值名称和第一失效时间,具体包括以下步骤:
当确定存在遗漏采集任务时,生成所述补抄任务,所述补抄任务的时间段为从所述上次采集时间至所述上次采集时间加上所述采集周期;
存储所述补抄任务至Redis上,设置其键值名称为“TSN+设备ID+设备类型+任务类型短编码+上次采集时间”;
对应设置所述补抄任务的第一失效时间;
将上次采集时间更新为上次采集时间与采集周期的加和存储到Redis上。
5.根据权利要求4所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述获取键值名称缓存队列中的键值名称,根据所述键值名称从Redis上获取对应的补抄任务,具体包括以下步骤:
获取在线设备;
判断当前键值名称缓存队列是否有效;
若确定当前键值名称缓存队列无效,则清空所述当前键值名称缓存队列,从Redis上获取所有补抄任务的键值名称,存储到所述当前键值名称缓存队列中,并更新设置第二失效时间;
判断获取的当前在线设备是否存在执行任务或者待执行任务;
若判定当前在线设备不存在执行任务且不存在待执行任务,则确定当前在线设备处于空闲状态;
若判定当前在线设备存在执行任务或者待执行任务,则重新获取在线设备;
当确定当前在线设备处于空闲状态时,从所述当前键值名称缓存队列中获取一个键值名称,并将其从所述当前键值名称缓存队列中移除;
根据所述键值名称从Redis上获取对应的补抄任务,并将其从Redis上移除。
6.根据权利要求5所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述判断当前键值名称缓存队列是否有效,具体包括以下步骤:
判断当前键值名称缓存队列是否为空;
若判定所述当前键值名称缓存队列为空,则确定所述当前键值名称缓存队列无效;
若判定所述当前键值名称缓存队列为非空,则判断当前时间是否已到第二失效时间;
若判定当前时间已到第二失效时间,则确定所述当前键值名称缓存队列无效。
7.根据权利要求5所述的基于Redis缓存技术的电力数据补抄方法,其特征在于,所述在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务,具体包括以下步骤:
设置所述补抄任务的执行优先级为最低级别;
执行所述补抄任务。
8.一种基于Redis缓存技术的电力数据补抄系统,其特征在于,包括:
漏点计算模块,用于根据本次采集时间、下次采集时间和上次采集时间确定是否存在遗漏采集任务,并在确定存在遗漏采集任务,则生成补抄任务发送到Redis上进行存储;
Redis缓存模块,与所述漏点计算模块连接,用于存储补抄任务,且对应设置键值名称和第一失效时间,还用于存储上次采集时间;
空闲补抄模块,与所述Redis缓存模块连接,用于从Redis上获取对应的补抄任务,并在确定补抄任务执行与正常采集任务不冲突时,执行所述补抄任务。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195267.5A CN114564502A (zh) | 2022-03-01 | 2022-03-01 | 一种基于Redis缓存技术的电力数据补抄方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195267.5A CN114564502A (zh) | 2022-03-01 | 2022-03-01 | 一种基于Redis缓存技术的电力数据补抄方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564502A true CN114564502A (zh) | 2022-05-31 |
Family
ID=81714959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210195267.5A Pending CN114564502A (zh) | 2022-03-01 | 2022-03-01 | 一种基于Redis缓存技术的电力数据补抄方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564502A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115695503A (zh) * | 2022-12-29 | 2023-02-03 | 长沙力合微智能科技有限公司 | 终端数据抄读方法、抄表系统、电子设备及存储介质 |
-
2022
- 2022-03-01 CN CN202210195267.5A patent/CN114564502A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115695503A (zh) * | 2022-12-29 | 2023-02-03 | 长沙力合微智能科技有限公司 | 终端数据抄读方法、抄表系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727437B (zh) | 代码优化项获取方法、装置、存储介质及电子设备 | |
CN110134738B (zh) | 分布式存储系统资源预估方法、装置 | |
CN112799897B (zh) | 一种基于大数据的信息管理方法、管理系统、存储介质 | |
CN110275799B (zh) | 账务系统不停机日切点快照余额的方法 | |
CN112015720A (zh) | 继电保护设备就地化快速整定方法及其系统 | |
CN114564502A (zh) | 一种基于Redis缓存技术的电力数据补抄方法和系统 | |
CN110287114B (zh) | 一种数据库脚本性能测试的方法及装置 | |
CN111984673B (zh) | 一种电网电能量计量系统树形结构模糊检索方法和装置 | |
CN112328602B (zh) | 一种数据写入Kafka的方法、装置及设备 | |
CN113065234B (zh) | 一种智能电表的批次可靠性风险等级评估方法及系统 | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
CN115309638A (zh) | 协助模型优化的方法及装置 | |
CN112069006B (zh) | 一种检测分析gpu速率状态的方法、装置及计算机可读介质 | |
CN113190543A (zh) | 一种数据清洗方法、装置、电子设备及存储介质 | |
CN116069986B (zh) | 一种告警信号关联规则分析方法和系统 | |
CN113836457B (zh) | 一种基于信息识别分析的移动互联网终端缓存管理方法、系统及存储介质 | |
CN117271488A (zh) | 数据库脚本质量检核方法及装置 | |
CN117851397A (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN116149945A (zh) | 数据库统计信息的收集方法、存储介质及设备 | |
CN115913747A (zh) | 一种网络安全识别装置及其方法 | |
CN117591541A (zh) | 数据查询方法、装置、电子设备及计算机可读介质 | |
CN115409647A (zh) | 一种基于人工智能的能量路由器寿命预测方法和装置 | |
CN117574859A (zh) | 一种数据处理方法、装置、设备、系统、介质及产品 | |
CN114385308A (zh) | 应用的扩缩容方法及装置 | |
CN115408162A (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 |