数据输出方法及装置的制作方法

文档序号:6378094阅读:121来源:国知局
专利名称:数据输出方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据输出方法及装置。
背景技术
在现有技术中,普通网页在处理时会尽可能的减少输出内容,以确保良好的用户体验,但是,在进行大数据量的网页输出时,例如,团购导航输出的数据量会随团购业务的不断扩展而逐步增加。如何保证数据的高时效性,减少输出时间,保证系统的高可靠性,是急需解决的问题。目前,在现有技术中,在网页输出数据量比较少的情况下,读取缓存时,会判断缓存状态,如果失效或不存在,将访问数据库获取新数据,并同时更新缓存。在输出数据量比较少时,这种解决方案是可以接受的,但当输出数据量不断增加后,输出消耗总时间显著增加,缓存访问并发访问次数增大,尤其是遇到并发访问加大时,同时缓存又失效,系统随时有宕机的可能性。

发明内容
本发明提供一种数据输出方法及装置,以在进行大数据量的网页输出时,保证数据的高时效性,减少输出时间,保证系统的高可靠性。本发明提供一种数据输出方法,包括步骤I和步骤2,其中,步骤I和步骤2为异步操作,具体地步骤1,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果数据文件中存在该输出数据,则从数据文件中获取该输出数据并发送,如果数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;步骤2,根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作,其中,哈希表中包括各个输出数据的标识信息和最后更新时间。优选地,存储空间具体包括内存、以及分布式缓存;缓存时间戳为预先设置的更新时间间隔;哈希表存储在内存中。优选地,步骤I具体包括步骤100,根据缓存时间戳、以及哈希表判断内存中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤101 ;步骤101,根据缓存时间戳、以及哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤103 ;步骤103,根据缓存时间戳、以及哈希表判断数据文件中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤104 ;步骤104,从数据库中读取相应的输出数据,判断输出数据是否合法,如果合法,则执行步骤105,否则,结束操作;步骤105,判断输出数据是否已发送,如果判断为是,异步执行步骤106,否则,执行步骤107 ;步骤106,跟据从数据库中读取的输出数据更新存储空间以及数据文件;步骤107 ;发送输出数据。优选地,根据缓存时间戳、以及哈希表判断内存、分布式缓存或数据文件中是否存在相应的合法的输出数据具体包括根据输出数据的标识信息判断内存、分布式缓存、或数据文件中是否存在相应的输出数据;如果存在,则从内存中读取哈希表,并根据标识信息查询哈希表,获取相应的输出数据的最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定输出数据不合法;如果时间和大于当前时间,则确定输出数据合法。优选地,步骤106具体包括步骤1061,启动同步锁机制,其中,同步锁机制为在同一时间内,只允许一个线程更新存储空间以及数据文件中相应的输出数据,其他线程等待;步骤1062,判断输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,执行步骤1603,否则,执行步骤1604 ;步骤1603,根据从数据库中读取的输出数据更新内存,执 行步骤1605 ;步骤1604,根据从数据库中读取的输出数据更新分布式缓存,执行步骤1605 ;步骤1605,根据从数据库中读取的输出数据更新数据文件。优选地,根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内具体包括从内存中读取哈希表,获取各个输出数据的标识信息和最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定与标识信息相对应的输出数据已不在有效期内,需要进行更新;如果时间和大于当前时间,则确定与标识信息相对应的输出数据在有效期内,不需要进行更新。优选地,上述方法还包括设置输出数据发送阈值;将发送的输出数据的大小与输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于输出数据发送阈值,则禁止发送输出数据;否则,继续发送输出数据。本发明还提供了一种数据输出装置,包括输出模块,用于获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果数据文件中存在该输出数据,则从数据文件中获取该输出数据并发送,如果数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;更新模块,用于根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作,其中,哈希表中包括各个输出数据的标识信息和最后更新时间。优选地,存储空间具体包括内存、以及分布式缓存;缓存时间戳为预先设置的更新时间间隔;哈希表存储在内存中。优选地,输出模块具体用于根据缓存时间戳、以及哈希表判断内存中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,根据缓存时间戳、以及哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,根据缓存时间戳、以及哈希表判断数据文件中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,从数据库中读取相应的输出数据,判断输出数据是否合法,如果不合法,结束操作,否贝U,判断输出数据是否已发送,如果判断为是,异步跟据从数据库中读取的输出数据更新存储空间以及数据文件,否则,发送输出数据;输出模块具体用于根据输出数据的标识信息判断内存、分布式缓存、或数据文件中是否存在相应的输出数据;如果存在,则从内存中读取哈希表,并根据标识信息查询哈希表,获取相应的输出数据的最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定输出数据不合法;如果时间和大于当前时间,则确定输出数据合法;输出模块具体用于启动同步锁机制,其中,同步锁机制为在同一时间内,只允许一个线程更新存储空间以及数据文件中相应的输出数据,其他线程等待;判断输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,根据从数据库中读取的输出数据更新内存,并根据从数据库中读取的输出数据更新数据文件,否则,根据从数据库中读取的输出数据更新分布式缓存,并根据从数据库中读取的输出数据更新数据文件;更新模块具体用于从内存中读取哈希表,获取各个输出数据的标识信息和最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定与标识信息相对应的输出数据已不在有效期内,需要进行更新;如果时间和大于当前时间,则确定与标识信息相对应的输出数据在有效期内,不需要进行更新。 优选地,输出模块进一步用于设置输出数据发送阈值;将发送的输出数据的大小与输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于输出数据发送阈值,则禁止发送输出数据;否则,继续发送输出数据。本发明有益效果如下通过直接读取内存、缓存或数据文件中的输出内容,即使系统服务重启,也能读取数据文件直接输出,极大的提高了数据的输出时间,降低了服务器的负载,通过异步数据更新机制,有效的保证了数据的时效性,进而降低了分布式缓存的读取次数,本发明实施例的技术方案能够在进行大数据量的网页输出时,保证数据的高时效性,减少输出时间,保证系统的高可靠性。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I是本发明实施例的数据输出方法的流程图;图2是本发明实施例的数据输出方法的详细处理的流程图;图3是本发明实施例的数据输出装置的结构示意图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了在进行大数据量的网页输出时,保证数据的高时效性,减少输出时间,保证系统的高可靠性,本发明提供了一种数据输出方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
方法实施例根据本发明的实施例,提供了一种数据输出方法,图I是本发明实施例的数据输出方法的流程图,如图I所示,根据本发明实施例的数据输出方法包括包括步骤11和步骤12,其中,步骤11和步骤12为异步操作,具体包括如下处理步骤11,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果数据文件中存在该输出数据,则从数据文件中获取该输出数据并发送,如果数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;其中,存储空间具体包括内存、以及分布式缓存;具体地,在步骤11包括如下处理步骤110,根据缓存时间戳、以及哈希表判断内存中是否存在相应合法的输出数据,如果存在,执行步骤116,否则,执行步骤111 ;其中,上述哈希表可以存储在内存中。上述哈希表中包括各个输出数据的标识信息和最后更新时间。在实际应用中,哈希表可以保存各输出数据的key值、输出数据的存放位置、以及输出数据的相关访问统计数据,哈希表可供实时页面监控时使用。步骤111,根据缓存时间戳、以及哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,执行步骤116,否则,执行步骤112 ;步骤112,根据缓存时间戳、以及哈希表判断数据文件中是否存在相应合法的输出数据,如果存在,执行步骤116,否则,执行步骤113 ;需要说明的的是,在本发明实施例中,读取数据文件非常方便,只需要根据数据的标识信息从数据文件中查找相应的数据即可,与读取数据库相比,数据库的数据是分散保存的,需要根据多个表的查询才能找到一个用户所需要的完整的数据,而数据文件则可以一次性的读取用户所需要的完整的数据,因此,读取数据文件要比读取数据库节省许多的时间。具体地,步骤110、111、112包括如下处理根据输出数据的标识信息判断内存、分布式缓存、或数据文件中是否存在相应的输出数据;如果存在,则从内存中读取哈希表,并根据标识信息查询哈希表,获取相应的输出数据的最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定输出数据不合法;如果时间和大于当前时间,则确定输出数据合法。步骤113,从数据库中读取相应的输出数据,判断输出数据是否合法,如果合法,则执行步骤114,否则,结束操作;步骤114,判断输出数据是否已发送,如果判断为是,异步执行步骤115,否则,执行步骤116 ;步骤115,跟据从数据库中读取的输出数据更新存储空间以及数据文件;优选地,步骤115具体包括步骤1151,启动同步锁机制,其中,同步锁机制为在同一时间内,只允许一个线程更新存储空间以及数据文件中相应的输出数据,其他线程等待;步骤1152,判断输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,执行步骤1153,否则,执行步骤1154 ;步骤1153,根据从数据库中读取的输出数据更新内存,执行步 骤1155 ;步骤1154,根据从数据库中读取的输出数据更新分布式缓存,执行步骤1155 ;步骤1155,根据从数据库中读取的输出数据更新数据文件。步骤116;发送输出数据。步骤12,根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作,其中,缓存时间戳为预先设置的更新时间间隔;例如,20分钟、40分钟等。优选地,步骤12具体包括如下处理步骤120,从内存中读取哈希表,获取各个输出数据的标识信息和最后更新时间;步骤121,将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定与标识信息相对应的输出数据已不在有效期内,需要进行更新;如果时间和大于当前时间,则确定与标识信息相对应的输出数据在有效期内,不需要进行更新。例如,某个数据的最后更新时间是12:40,当前时间是13:00,缓存时间戳为30分钟,因此,将12:40加上30分钟后,得到时间和13:10,与当前时间13:00进行比较,因为13:10大于当前时间13:00,则确定相应的输出数据在有效期内,不需要进行更新。优选地,在本发明实施例中,还可以预先设置一个输出数据发送阈值;在发送数据时,将发送的输出数据总数的大小与输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于输出数据发送阈值,则禁止发送输出数据;否则,继续发送输出数据。以下结合附图,以团购导航网页数据输出为例,对本发明实施例的技术方案进行详细的说明。图2是本发明实施例的数据输出方法的详细处理的流程图,如图2所示,根据本发明实施例的数据输出方法包括如下处理步骤201,获取团购导航网站访问请求,执行步骤202,异步执行步骤213 ;步骤202,判断内存中是否有相应的合法数据,如果有且数据合法,执行步骤214 ;如果内存中数据不合法或者不存在相应的数据,则执行步骤203 ;步骤203,判断分布式缓存中数据是否有相应的合法数据,如果有且数据合法,执行步骤214 ;如果分布式缓存中数据不合法或者不存在相应的数据,则执行步骤204 ;步骤204,读取预先设置在预定服务器中的数据文件,如果数据文件存在,执行步骤214 ;如果数据文件不存在,执行步骤205 ;
步骤205,从数据库中读取相应的数据,执行步骤206 ;步骤206,启动同步锁机制;执行步骤207 ;其中,同步锁机制是指如果有多个线程需要更新同一个数据,在执行更新操作时,在同一时间内,只允许一个线程进行更新操作,其他线程等待,在其他线程进入更新操作时再判断缓存数据是否存在且合法,如果数据存在且合法,则直接读取数据,不再进行更新操作;步骤207,验证从数据库中读取的数据是否合法,如果合法,执行步骤208 ;否则,结束操作;步骤208,判断该数据是否已经输出,如果判断为是,执行步骤209,否则,执行步骤 214 ;步骤209,判断从数据库中读取的数据的大小是否大于或等于O. 5M,如果判断为是,执行步骤210 ;否则,执行步骤211 ; 步骤210,更新内存中的相应数据,执行步骤212 ;步骤211,更新分布式缓存中的相应数据,执行步骤212 ;步骤212,更新数据文件中的相应数据,结束操作。步骤213,判断缓存时间戳是否有效,如果判断为是,结束操作,否则,执行步骤205 ;优选地,在判断缓存时间戳是否有效时,首先需要在内存中建立一个哈希(hash)表,保存各缓存的数据的key值、存放位置、以及相关访问统计数据,可供实时页面监控,同时异步更新线程根据hash表和对应缓存时间戳来更新对应的缓存数据。步骤214,输出数据。优选地,在步骤214中,为了保证系统的稳定,设置了输出数据发送阈值,超过输出数据发送阈值时禁止数据输出,在实际应用中,输出数据发送阈值可以根据用户需要和系统的配置进行动态设置,现有系统仍在优化中,在今后将不断提高输出数据发送阈值。综上所述,本发明实施例的技术方案能够保证99%的缓存数据直接读取缓存或数据文件并进行输出,即使系统服务重启,也能读取数据文件直接输出,极大的提高了缓存数据的输出时间;此外,同步锁机制和异步数据更新机制,有效的保证了数据的时效性,进而降低了分布式缓存的读取次数;表I为团购导航收录产品数量的统计表,表2为服务器负载统计表,如表I和表2所示,服务器在本发明实施例的技术方案上线后,服务器负载从评价4. 5左右下降到O. 5左右;极大地降低了服务器的负载。表I
团购导航城市~ 58团购美团窝窝团~ 大众点评团拉手
百度760431760760760
36020408251470142025
Tuan80019799 17273 12527390029932表权利要求
1.一种数据输出方法,其特征在于,包括步骤I和步骤2,其中,所述步骤I和步骤2为异步操作,具体地 步骤1,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送所述输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果所述数据文件中存在该输出数据,则从所述数据文件中获取该输出数据并发送,如果所述数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从所述数据库中读取的输出数据异步更新所述存储空间以及所述数据文件; 步骤2,根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从所述数据库中读取相应的输出数据,并根据从所述数据库中读取的输出数据更新所述存储空间和/或所述数据文件,如果判断为是,结束操作,其中,所述哈希表中包括各个输出数据的标识信息和最后更新时间。
2.如权利要求I所述的方法,其特征在于, 所述存储空间具体包括内存、以及分布式缓存; 所述缓存时间戳为预先设置的更新时间间隔; 所述哈希表存储在所述内存中。
3.如权利要求2所述的方法,其特征在于,所述步骤I具体包括 步骤100,根据所述缓存时间戳、以及所述哈希表判断内存中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤101 ; 步骤101,根据所述缓存时间戳、以及所述哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤102 ; 步骤102,根据所述缓存时间戳、以及所述哈希表判断所述数据文件中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤103 ; 步骤103,从数据库中读取相应的输出数据,判断所述输出数据是否合法,如果合法,则执行步骤104,否则,结束操作; 步骤104,判断所述输出数据是否已发送,如果判断为是,异步执行步骤105,否则,执行步骤106 ; 步骤105,跟据从所述数据库中读取的输出数据更新所述存储空间以及所述数据文件; 步骤106;发送所述输出数据。
4.如权利要求3所述的方法,其特征在于, 根据所述缓存时间戳、以及所述哈希表判断内存、分布式缓存或数据文件中是否存在相应的合法的输出数据具体包括 根据输出数据的标识信息判断所述内存、所述分布式缓存、或所述数据文件中是否存在相应的输出数据;如果存在,则从所述内存中读取所述哈希表,并根据所述标识信息查询所述哈希表,获取所述相应的输出数据的最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定所述输出数据不合法;如果所述时间和大于所述当前时间,则确定所述输出数据合法; 所述步骤106具体包括 步骤1061,启动同步锁机制,其中,所述同步锁机制为在同一时间内,只允许一个线程更新所述存储空间以及所述数据文件中相应的输出数据,其他线程等待; 步骤1062,判断所述输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,执行步骤1603,否则,执行步骤1604 ; 步骤1603,根据从所述数据库中读取的输出数据更新所述内存,执行步骤1605 ; 步骤1604,根据从所述数据库中读取的输出数据更新所述分布式缓存,执行步骤1605 ; 步骤1605,根据从所述数据库中读取的输出数据更新所述数据文件。
5.如权利要求3所述的方法,其特征在于, 根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内具体包括从所述内存中读取所述哈希表,获取各个输出数据的标识信息和最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定与所述标识信息相对应的输出数据已不在有效期内,需要进行更新;如果所述时间和大于所述当前时间,则确定与所述标识信息相对应的输出数据在有效期内,不需要进行更新。
6.如权利要求I所述的方法,其特征在于,所述方法还包括 设置输出数据发送阈值; 将发送的输出数据的大小与所述输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于所述输出数据发送阈值,则禁止发送所述输出数据;否则,继续发送所述输出数据。
7.一种数据输出装置,其特征在于,包括 输出模块,用于获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送所述输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果所述数据文件中存在该输出数据,则从所述数据文件中获取该输出数据并发送,如果所述数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从所述数据库中读取的输出数据异步更新所述存储空间以及所述数据文件; 更新模块,用于根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从所述数据库中读取相应的输出数据,并根据从所述数据库中读取的输出数据更新所述存储空间和/或所述数据文件,如果判断为是,结束操作,其中,所述哈希表中包括各个输出数据的标识信息和最后更新时间。
8.如权利要求7所述的装置,其特征在于, 所述存储空间具体包括内存、以及分布式缓存; 所述缓存时间戳为预先设置的更新时间间隔; 所述哈希表存储在所述内存中。
9.如权利要求8所述的装置,其特征在于, 所述输出模块具体用于根据所述缓存时间戳、以及所述哈希表判断内存中是否存在相应合法的输出数据,如果存在,发送所述输出数据,否则,根据所述缓存时间戳、以及所述哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,发送所述输出数据,否贝U,根据所述缓存时间戳、以及所述哈希表判断所述数据文件中是否存在相应合法的输出数据,如果存在,发送所述输出数据,否则,从数据库中读取相应的输出数据,判断所述输出数据是否合法,如果不合法,结束操作,否则,判断所述输出数据是否已发送,如果判断为是,异步跟据从所述数据库中读取的输出数据更新所述存储空间以及所述数据文件,否则,发送所述输出数据; 所述输出模块具体用于根据输出数据的标识信息判断所述内存、所述分布式缓存、或所述数据文件中是否存在相应的输出数据;如果存在,则从所述内存中读取所述哈希表,并根据所述标识信息查询所述哈希表,获取所述相应的输出数据的最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定所述输出数据不合法;如果所述时间和大于所述当前时间,则确定所述输出数据合法; 所述输出模块具体用于启动同步锁机制,其中,所述同步锁机制为在同一时间内,只允许一个线程更新所述存储空间以及所述数据文件中相应的输出数据,其他线程等待;判断所述输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,根据从所述数据库中读取的输出数据更新所述内存,并根据从所述数据库中读取的输出数据更新所述数据文件,否则,根据从所述数据库中读取的输出数据更新所述分布式缓存,并根据从所述数据库中读取的输出数据更新所述数据文件; 所述更新模块具体用于从所述内存中读取所述哈希表,获取各个输出数据的标识信息和最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定与所述标识信息相对应的输出数据已不在有效期内,需要进行更新;如果所述时间和大于所述当前时间,则确定与所述标识信息相对应的输出数据在有效期内,不需要进行更新。
10.如权利要求7所述的装置,其特征在于,所述输出模块进一步用于设置输出数据发送阈值;将发送的输出数据的大小与所述输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于所述输出数据发送阈值,则禁止发送所述输出数据;否则,继续发送所述输出数据。
全文摘要
本发明公开了一种数据输出方法及装置。该方法包括步骤1,获取数据输出请求,判断存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,否则,判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果存在,则从数据文件中获取该输出数据并发送,否则,从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;步骤2,根据缓存时间戳、以及哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作。
文档编号G06F17/30GK102929943SQ20121037189
公开日2013年2月13日 申请日期2012年9月28日 优先权日2012年9月28日
发明者张艳伟 申请人:五八有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1