具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的信息聚合文件的同步方法、装置及系统的具体实施方式、结构、特征及其功效,详细说明如后。
第一实施例
参阅图1,第一实施例提供一种信息聚合文件的同步方法,此同步方法可由计算机系统实现,该方法具体包括以下步骤:
步骤S110、建立同步数据库;同步数据库用于保存已经同步过的条目,还可保存其他在同步过程中可能用到的信息。可以理解,同步数据库可以是通用的数据库,还可以是一般的文件方式进行保存。
步骤S120、获取并保存位于第一信息发布平台中的一个信息聚合文件的信息最新发布时间;具体地,其可包括以下步骤:首先,接收客户端提交的第一信息服务的地址,上述的第一信息服务地址由第一信息发布平台提供,具体地,其例如是指个人博客页面的地址。然后根据第一信息服务地址分析提取对应的RSS文件的地址。一般来说,网站的设计规范中,RSS文件的地址与第一信息服务地址之间具有明确的对应关系。因此获取第一信息服务地址就意味同时得到了RSS文件的地址。得到RSS文件地址后从第一信息发布平台处下载此RSS文件,然后进行解析获取RSS文件的信息最新发布时间(即最后更新的信息PubDate域中的内容),并将得到的信息最新发布时间保存于同步数据库中。
此外,可以理解,上述的信息最新发布时间并不限于保存于同步数据库,还可以另行保存。
步骤S130、再次获聚上述的信息聚合文件,并比较获取的信息聚合文件中每条信息的发布时间与上述的信息最新发布时间;一般来说,RSS文件是以类似于可扩展标记语言(Extensible Markup Language, XML)格式进行保存,解析RSS文件得到所有信息的集合。上述的信息例如是对应于用户每次发布的内容。一般来说,每条信息至少包括发布时间、标题、及内容三个字段。以XML格式的RSS文件为例,按照一般通用的规范,每条信息对应于一个RSS文件中的一个Item域,其发布时间、标题、及内容分别对应于所述Item域中的PubDate、Titile及Description域中的内容。
遍历所有信息的集合,每次输出一条信息,然后比较每条信息的发布时间与步骤S120中获取的信息最新发布时间。
步骤S140、若所述信息的发布时间在所述信息最新发布时间之后则在该同步数据库中检索所述信息;可以理解,在步骤S120之后发布的信息的发布时间会在步骤S120中获取的信息最新发布时间之后。这些信息正是需要向第二信息发布平台同步的信息,对于这些信息,在同步数据库中检索其中的每一个,检索时除了采用发布时间之外,还可以采用信息的标题或者描述作为检索词,只有当标题或者描述也符合时才视为找到匹配的结果,若未找到匹配结果,则说明此信息未被同步至第二信息发布平台中。
步骤S150、若在该同步数据库中检索所述信息未得到匹配结果则将所述信息同步至第二信息发布平台中发布,并将所述信息保存于同步数据库中。同步过程可以通过调用第二信息发布平台公开的编程接口(API)实现,具体地,例如,可以向第二信息发布平台发起调用API的请求,由用户在第二信息发布平台中完成用户验证;还可以是保存用户的验证信息如用户名与密码,自行采用该验证验证信息向第二信息发布平台发起调用API请求。然后直接采用API在第二信息发布平台中发布需要同步的信息即可。
可以理解,由于不同信息发布平台对于发布的内容有不同的要求。例如微博对字数有要求,因此在其他信息发布平台的内容同步至微博中之前,还可以进行格式化操作以使其格式符合微博的要求。其他平台可以此类推。在同步成功之后,还可将已经同步的信息保存于同步数据库中,以供后续再次进行同步操作时进行比对。
将信息保存于同步数据库中时,除发布时间之外,至少还要包括标题或者描述字段,即至少要保存步骤S140中用于检索匹配的字段。
在上述的各步骤中,步骤S110仅需执行一次,而步骤S120至步骤S150可以是重复进行的。可以理解,在完成步骤S150之后,即可执行步骤S120。
本实施例的信息聚合文件的同步方法中,可以方便的将第一信息发布平台中的内容同步至第二信息发布平台中发布,此外,通过在同步数据库中保存已经同步的信息,可以在判定信息是否已经被同步时检索除了发布时间之外的字段,防止在RSS文件中同一时间发布多个条目时,仅采用发布时间比对可能导致的错漏。
第二实施例
参阅图2,第二实施例提供一种信息聚合文件的同步方法,其与第一实施例的信息聚合文件的同步方法相似,其不同之处在于,在步骤S150之后还包括:
步骤S160,在步骤S120与步骤S130之间设定一个时间间隔;以及
步骤S170,根据步骤S150中是否有条目被同步调整上述的时间间隔。
具体地,若在步骤S150中有条目被同步,则说明在步骤S120与步骤S130之间用户已经更新了第一信息发布平台中的信息,用户活跃度高,为了保证高活跃度用户发布的信息能及时的同步,可以更新时间间隔的算法,减少上述的时间间隔。
相应地,若在步骤S150中没有条目被同步,证明用户的活跃度降低,此时可以更新时间间隔的算法,增加时间间隔,减少非活跃用户对系统资源的浪费。
此外,步骤S120至步骤S170在执行的过程中,可能会受到网络、服务器负载等各种因素的影响,导致执行失败。可以理解,这种错误为系统本身导致的错误,需要及时纠正这种错误;正常情况下,立即再次执行出错的步骤或者重新进行同步操作即可,重新进行同步操作例如是指重新执行步骤S120至步骤S160,即本实施例的信息聚合文件的同步方法中除了建立同步数据库之外的步骤。
然而,当这种错误为系统负载过高导致的错误,如果此时在重新执行出错的步骤或者同步操作,会加重系统的负载,导致系统的处理能力更加恶化,如此恶性循环会导致多米诺效应,此时可以将同步操作延迟一定时间,此时间为用户可以容忍的有损服务。
本实施例的信息聚合文件的同步方法中,通过调整步骤S120与步骤S130之间的时间间隔,既可以保证活跃用户发布的能得到即时的同步,也可以防止非活跃用户浪费系统资源。
第三实施例
参阅图3,第三实施例提供一种信息聚合文件的同步装置,其包括:数据库建立单元310、发布时间获取单元320、时间比较单元330、检索单元340、以及同步单元350。
其中,数据库建立单元310用于建立同步数据库;发布时间获取单元320用于获取并保存位于第一信息发布平台中的一个信息聚合文件的信息最新发布时间;时间比较单元330用于获取所述信息聚合文件,并比较获取信息聚合文件中每条信息的发布时间与所述信息最新发布时间;检索单元340用于若该条目的所述信息的发布时间在该最后更新条目的所述信息最新发布时间之后则在该所述同步数据库中检索该条目所述信息;同步单元350用于若在所述同步数据库中检索所述信息未得到匹配结果则将所述信息同步至第二信息发布平台中发布,并将所述信息保存于所述同步数据库中。
更新时间获取单元320具体可用于:接收客户端提交的第一信息服务的地址;根据所述第一信息服务的地址分析提取所述信息聚合文件的地址;根据所述信息聚合文件的地址下载所述信息聚合文件;解析下载的信息聚合文件得到所述信息最新发布时间;以及将所述最新发布时间保存于所述同步数据库中。
进一步地,该同步装置还可包括同步间隔设定单元360及同步间隔调整单元370,其中同步间隔设定单元360用于设定发布时间获取单元320与时间比较单元330执行时的时间间隔,而同步间隔调整单元370用于调整同步间隔设定单元360设定的时间间隔。具体地,在同步单元350将信息同步至第二信息发布平台中之后减少时间间隔。若在一次同步操作中没有信息被同步至该第二信息发布平台则增加时间间隔。
上述的更新时间获取单元320、时间比较单元330、检索单元340、以及同步单元350以及同步间隔调整单元360在执行过程中可能会受到网络、服务器负载等各种因素的影响,导致执行失败。可以理解,这种错误为系统本身导致的错误,需要及时纠正这种错误;正常情况下,执行失败的单元立即再次执行或者重新进行同步操作,即所有单元重新执行即可。然而,当这种错误为系统负载过高导致的错误,如果此时在重新执行或者重新进行同步操作,会加重系统的负载,导致系统的处理能力更加恶化,如此恶性循环会导致多米诺效应,此时可以将同步操作延迟预定时间,即所有单元延迟预定时间后再次执行,此预定时间为用户可以容忍的有损服务。
关于上述的更新时间获取单元320、时间比较单元330、检索单元340、同步单元350、同步间隔设定单元360以及同步间隔调整单元370进一步的细节,还可参考图1、图2及相关描述。
本实施例的信息聚合文件的同步装置中,通过在同步数据库中保存已经同步的信息,可以在判定信息是否已经被同步时检索除了发布时间之外的字段,防止在RSS文件中同一时间发布多条信息时,仅采用发布时间比对可能导致的错漏。
第四实施例
参阅图4,第四实施例提供一种信息聚合文件的同步系统,其包括同步装置10、第一信息发布平台11、第二信息发布平台12、客户端13及同步数据库14。
同步装置10、第一信息发布平台11、第二信息发布平台12例如可为服务器系统。第一信息发布平台11用于提供第一信息服务,具体地,其例如可为博客平台,用于向用户提供博客服务。第二信息发布平台12用于提供第二信息服务,具体地,其例如可为微博平台,用于向用户提供微博客服务。客户端13为用户使用的终端,用于让用户存取同步装置10、第一信息发布平台11与第二信息发布平台12,具体地,客户端13可为台式电脑、笔记本电脑、平板电脑、智能手机等。同步数据库14用于保存同步装置10已经同步至第二信息发布平台12中的信息,以供同步装置10再次进行同步时进行查询。
同步装置10为第三实施例所述的同步装置,可进一步参阅图3及相关描述。此外,同步装置10还可以是与第一信息发布平台11整合至一起,此时同步装置10成为第一信息发布平台11的功能模块。
本实施例的信息聚合文件的同步系统中,通过在同步数据库中保存已经同步的信息,可以在判定信息是否已经被同步时检索除了发布时间之外的字段,防止在RSS文件中同一时间发布多条信息时,仅采用发布时间比对可能导致的错漏。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。
该计算机可执行指令包括:
用于建立同步数据库的指令;
用于获取并保存位于第一信息发布平台中的一个信息聚合文件的信息最新发布时间的指令;
用于获取所述信息聚合文件,并比较获取的信息聚合文件中每条信息的发布时间与所述信息最新发布时间的指令;
用于若所述信息的发布时间在所述信息最新发布时间之后则在所述同步数据库中检索所述信息的指令;以及
用于若在所述同步数据库中检索所述信息未得到匹配结果则将所述信息同步至第二信息发布平台中发布,并将所述信息保存于所述同步数据库中的指令。
进一步地,该用于获取并保存位于第一信息发布平台中的一个信息聚合文件的信息最新发布时间的指令包括:
用于接收客户端提交的第一信息服务的地址的指令;
用于根据第一信息服务的地址分析提取信息聚合文件的地址的指令;
用于根据信息聚合文件的地址下载信息聚合文件的指令;
用于解析下载的信息聚合文件得到其信息最新发布时间的指令;以及
用于将信息最新发布时间保存于同步数据库中的指令。
进一步地,该计算机可执行指令包括:用于使所述用于获取并保存位于第一信息发布平台中的一个信息聚合文件中信息的信息最新发布时间的指令及所述用于获取所述信息聚合文件,并比较获取的信息聚合文件中每条信息的发布时间与所述信息最新发布时间的指令之间相隔一时间间隔执行的指令。
进一步地,该计算机可执行指令包括:用于若没有条目被同步至该第二信息发布平台则增加所述时间间隔的指令。
进一步地,该计算机可执行指令包括:错误处理指令,用于若以上指令执行失败时重新执行失败的指令。
进一步地,该计算机可执行指令包括:错误处理指令,用于若以上指令执行失败时重新执行所有指令的指令。
进一步地,该计算机可执行指令包括:错误处理指令,用于若以上指令执行失败时延迟预定时间后重新执行所有指令的指令。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。