更新cms碎片的方法及装置的制造方法

文档序号:10534525阅读:293来源:国知局
更新cms碎片的方法及装置的制造方法
【专利摘要】本发明实施例提供一种更新CMS碎片的方法及装置。该方法包括:建立定时CMS碎片更新检测任务;在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异;若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本存在差异,则下载所述第二CMS碎片到所述目标路径下以更新所述第一CMS碎片。
【专利说明】
更新CMS碎片的方法及装置
技术领域
[0001]本发明涉及网络技术领域,尤其涉及一种更新内容管理系统(ContentManagement System,CMS)碎片的方法及装置。
【背景技术】
[0002]在高性能网站中,一般会采用动静态分离部署。浏览器会缓存页面,如果上次请求的静态资源和这次有重复的,浏览器会直接取本地缓存中的文件,而不会从服务器上重新取,除非用户强制刷新。现在大型网站人员分工非常细。前端有专门的开发人员,后台有专门的开发人员。如果服务器静态文件有更新,一般会采用增加版本号的方式,改变原来的URL地址。但是,这个版本号的改变必须让后台服务知道,因为这些静态文件都是直接在后台页面上引用的。而且如果静态部分频繁增加css,jS(CSS是美化控件的代码(层叠样式表),js( javascript)是一种增强表现力的脚本语言)文件怎么办呢?每次前台开发人员来找后台开发人员要求修改静态文件的引用,沟通成本非常高。后来大家就研发了一种叫做CMS碎片的东西。CMS就是内容管理系统。将几个css Js打包成一个模块,前端开发人员不需要通知后台开发人员直接在CMS上修改即可。后台开发人员每次自己去看自己的服务上的静态文件和CMS相比是不是最新的。
[0003]现有采用的方法是单独写一个shell脚本(与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的)放到服务器上,定时去取最新的CMS碎片。但是这种采用shell脚本更新的方式,是在shell脚本中执行http请求,将要覆盖的文件路径写死在脚本里,不仅无法适用下载路径发生改变的情况,并且没有进行下载正确性的检查,容易出问题。不跨平台,只适用于Linux服务器,需要单独部署,部署和维护困难。

【发明内容】

[0004]本发明实施例提供一种更新内容管理系统(Content Management System,CMS)碎片的方法及装置,用来解决现有技术中CMS碎片更新时,不仅无法适用下载路径发生改变的情况,并且没有进行下载正确性的检查,容易出问题,只适用于Linux服务器等技术问题。
[0005]本发明实施例的一个方面是提供一种更新CMS碎片的方法,包括:
[0006]建立定时CMS碎片更新检测任务;
[0007]在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异;
[0008]若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本存在差异,则下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片。
[0009]可选的,在该方法还包括:
[0010]检测该第二CMS碎片是否为出错页面文件;
[0011]若检测到该第二CMS碎片是出错页面文件,则不执行所述下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片的步骤。
[0012]可选的,所述下载所述第二CMS碎片到所述目标路径下以更新所述第一CMS碎片,具体包括:
[0013]从所述下载路径中下载所述第二CMS碎片,并判断下载所述第二 CMS碎片是否成功;
[0014]若判定下载成功,则用下载后的所述第二CMS碎片覆盖所述目标路径下的所述第一 CMS碎片。
[0015]可选的,所述定时CMS碎片更新检测任务通过spring MVC架构中的任务task功能来建立。
[0016]可选的,该方法还包括:
[0017]当所述CMS碎片的下载路径变更时,改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径。本发明实施例的另一个方面是提供一种更新CMS碎片的装置,包括:
[0018]任务模块,用于建立定时CMS碎片更新检测任务;
[0019]检测模块,用于在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异;
[0020]更新模块,用于若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一 CMS碎片的文本存在差异,则下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片。
[0021]可选的,所述检测模块,还用于检测该第二CMS碎片是否为出错页面文件;所述更新模块在检测模块检测到该第二 CMS碎片是出错页面文件时,不执行更新。
[0022]可选的,所述更新模块包括:
[0023]下载单元,用于从所述下载路径中下载所述第二CMS碎片,并判断下载所述第二CMS碎片是否成功;
[0024]覆盖单元,用于若所述下载单元判定下载成功,则用下载后的所述第二CMS碎片覆盖所述目标路径下的所述第一 CMS碎片。
[°°25] 可选的,所述任务模块通过spring MVC架构中的任务task功能来建立定时CMS碎片更新检测任务。
[0026]可选的,该装置还包括:
[0027]路径修改模块,用于当所述CMS碎片的下载路径变更时,改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径。
[0028]本发明实施例提供的更新CMS碎片的方法及装置,通过采用在下载更新CMS碎片前,对第二CMS碎片是否为更新的内容进行检测,在确定是有更新的情况下,再下载更新的技术手段,可以解决现有技术中,由于直接进行下载更新导致的下载错误的技术问题,并且由于CMS碎片的更新方式不受脚本限制,所以也可实现适用于Linux服务器的技术效果。
【附图说明】
[0029]图1为本发明实施例提供的一种更新CMS碎片的方法流程图;
[0030]图2为本发明实施例提供的另一种更新CMS碎片的方法流程图;
[0031]图3为本发明实施例提供的一种更新CMS碎片的装置的结构示意图。
[0032]图4为本发明实施例提供的另一种更新CMS碎片的方法执行后的CMS碎片更新示意图。
【具体实施方式】
[0033]本发明实施例提供一种更新CMS碎片的方法如图1所示,该方法适合部署在服务器上,该服务器不限于Linux服务器。该方法包括:
[0034]101,建立定时CMS碎片更新检测任务;
[0035]该定时CMS碎片更新检测任务可以通过spring MVC架构中的任务task功能来建立;也可以通过做一个后台界面,该界面上有定时更新CMS碎片的设定等方式实现。
[0036]102,在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测该下载路径下存储的第二 CMS碎片的文本与目标路径下存储的第一 CMS碎片的文本是否有差异;若下载路径下存储的第二 CMS碎片的文本与目标路径下存储的第一 CMS碎片的文本存在差异,则执行103;若不存在差异,则执行104。
[0037]可以在建立上述任务时,将系统中用于下载CMS碎片路径的下载路径设置到任务中,由于在TASK中,该写入下载路径的过程是可以改变的,因此,当所述CMS碎片的下载路径变更时,可以改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径,从而避免现有技术中shell脚本下载路径写死在里面,无法更改的技术问题。
[0038]目标路径即是下载下来的CMS碎片需要存储路径。
[0039]通过将第二CMS碎片的文本和第一 CMS碎片的文本进行比较,查看是否是否有差异的方式,来确定下载路径上的第二CMS碎片是否是更新过的。若存在差异,则执行103;若不存在差异,则执行104.
[0040]103,下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片。
[0041 ] 104,说明是未更新的CMS碎片,则无需下载,等待下一定时检测。
[0042]此时,可等待下次检测周期到达时,再次按照102-104的步骤循环执行。
[0043]本实施例提供的方法,通过采用在下载更新CMS碎片前,对第二CMS碎片是否为更新的内容进行检测,在确定是有更新的情况下,再下载更新的技术手段,可以解决现有技术中,由于直接进行下载更新导致的下载错误的技术问题,并且由于CMS碎片的更新方式不受脚步限制,所以也可实现适用于Linux服务器的技术效果。
[0044]本实施例以通过spring MVC架构中的task功能来建立定时CMS碎片更新检测任务为例,继续提供一种更新CMS碎片的方法,如图2所示,该方法包括:
[0045]201,在spring mvc的架构中,可以使用spring的Task来建立定时CMS碎片更新检测任务,定时更新CMS碎片。
[0046]例如:在spring的配置文件里,配置task的数据库对象集合schema(下载路径,目标路径等),执行者的线程池大小设为5,调度程序的线程池大小设为10。设定更新程序间隔I小时更新一次。
[0047]202,在每次定时更新检测任务执行的过程中,到CMS碎片的下载路径检测该下载路径下存储的第二 CMS碎片是否为出错页面文件;若是,则执行200;否则执行203。
[0048]出错页面是指502,503,504等等的出错页面。因为下载路径中有可能因为部分网关或服务器等出现问题,使原本保存的CMS碎片文件变成了出错页面的文件,此时,若单纯通过差异性检测也可能得出错误的结论,即将出错页面文件作为CMS碎片下载下来。因此在下载前,还需确定该CMS碎片文件是否为出错页面文件等,以便保证更新的正确性。
[0049]该203可以在203前执行,也可以在203执行。
[0050]203,检测该下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片(即当前正在使用的CMS碎片)的文本是否有差异;若下载路径下存储的第二 CMS碎片的文本与目标路径下存储的第一 CMS碎片的文本存在差异,则执行204,否则执行200。
[0051]204,从所述下载路径中下载所述第二CMS碎片,并判断下载第二CMS碎片是否成功;若判定下载成功,则执行205,否则执行200。
[0052]205,用下载后的所述第二 CMS碎片覆盖所述目标路径下的所述第一 CMS碎片。
[0053]200,等待下次定时CMS碎片检测任务到来。
[0054]本发明实施例提供的更新CMS碎片的方法及装置,通过采用在下载更新CMS碎片前,对第二CMS碎片是否为更新的内容进行检测,在确定是有更新的情况下,再下载更新的技术手段,可以解决现有技术中,由于直接进行下载更新导致的下载错误的技术问题,并且由于CMS碎片的更新方式不受脚步限制,所以也可实现适用于Linux服务器的技术效果;进一步地,由于使用spring MVC(是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架)架构下的task将后台定时服务嵌入到Web工程中,将脚本和web工程合二为一,所以还可解决跨平台问题,并从细节上做优化,极大地方便了运维和开发人员,真正有更新时覆盖,降低程序风险。
[0055]如图4所示的按照本方法执行过的CMS碎片更新后附图。3月8日晚上前端更新过CMS碎片,但不是所有的文件都更新。
[0056]本实施例提供的方法中,由于Task里面内置了功能强大的表达式,可灵活的配置更新时间,并且在共通方法内做排除出错处理。如果下载内容有误,就不更新碎片,继续使用旧碎片。对碎片路径可以放入pom文件统一配置,增加其可维护性。
[0057]为了便于上述方法的实现,本实施例继续提供一种更新CMS碎片的装置,如图3所示,包括:
[0058]任务模块31,用于建立定时CMS碎片更新检测任务;
[0059]检测模块32,用于在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异;
[0060]更新模块33,用于若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一 CMS碎片的文本存在差异,则下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片。
[0061]可选的,所述检测模块32,还用于检测该第二CMS碎片是否为出错页面文件;相应地,更新模块33在检测模块检测到该第二 CMS碎片是出错页面文件时,不执行更新。
[0062]其中,所述更新模块33包括:
[0063]下载单元,用于从所述下载路径中下载所述第二CMS碎片,并判断下载所述第二CMS碎片是否成功;
[0064]覆盖单元,用于若所述下载单元判定下载成功,则用下载后的所述第二CMS碎片覆盖所述目标路径下的所述第一 CMS碎片。
[0065]可选的,所述任务模块通过spring MVC架构中的任务task功能来建立定时CMS碎片更新检测任务。
[0066]可选的,还可包括:路径修改模块,用于当所述CMS碎片的下载路径变更时,改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径。
[0067]本发明实施例提供的更新CMS碎片的装置,采用在下载更新CMS碎片前,对第二CMS碎片是否为更新的内容进行检测,在确定是有更新的情况下,再下载更新的功能,可以解决现有技术中,由于直接进行下载更新导致的下载错误的技术问题,并且由于CMS碎片的更新方式不受脚步限制,所以也可实现适用于Linux服务器的技术效果。
[0068]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0069]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0070]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0071]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,R0M)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0072]本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0073]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种更新内容管理系统CMS碎片的方法,其特征在于,包括: 建立定时CMS碎片更新检测任务; 在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异; 若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本存在差异,则下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片。2.根据权利要求1所述的方法,其特征在于,在该方法还包括: 检测该第二 CMS碎片是否为出错页面文件; 若检测到该第二 CMS碎片是出错页面文件,则不执行所述下载所述第二 CMS碎片到所述目标路径下以更新所述第一 CMS碎片的步骤。3.根据权利要求1或2所述的方法,其特征在于,所述下载所述第二CMS碎片到所述目标路径下以更新所述第一 CMS碎片,具体包括: 从所述下载路径中下载所述第二 CMS碎片,并判断下载所述第二 CMS碎片是否成功; 若判定下载成功,则用下载后的所述第二CMS碎片覆盖所述目标路径下的所述第一CMS碎片。4.根据权利要求1或2所述的方法,其特征在于,所述定时CMS碎片更新检测任务通过spring MVC架构中的任务task功能来建立。5.根据权利要求4所述的方法,其特征在于,该方法还包括: 当所述CMS碎片的下载路径变更时,改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径。6.一种更新内容管理系统CMS碎片的装置,其特征在于,包括: 任务模块,用于建立定时CMS碎片更新检测任务; 检测模块,用于在每次定时执行所述任务执行的过程中,到CMS碎片的下载路径检测所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本是否有差异; 更新模块,用于若所述下载路径下存储的第二CMS碎片的文本与目标路径下存储的第一CMS碎片的文本存在差异,则下载所述第二CMS碎片到所述目标路径下以更新所述第一CMS碎片。7.根据权利要求6所述的装置,其特征在于, 所述检测模块,还用于检测该第二 CMS碎片是否为出错页面文件; 所述更新模块在检测模块检测到该第二 CMS碎片是出错页面文件时,不执行更新。8.根据权利要求6或7所述的装置,其特征在于,所述更新模块包括: 下载单元,用于从所述下载路径中下载所述第二 CMS碎片,并判断下载所述第二 CMS碎片是否成功; 覆盖单元,用于若所述下载单元判定下载成功,则用下载后的所述第二 CMS碎片覆盖所述目标路径下的所述第一 CMS碎片。9.根据权利要求6或7所述的装置,其特征在于,所述任务模块通过springMVC架构中的任务task功能来建立定时CMS碎片更新检测任务。10.根据权利要求9所述的装置,其特征在于,该装置还包括: 路径修改模块,用于当所述CMS碎片的下载路径变更时,改写所述task功能建立的定时CMS碎片更新检测任务中的所述CMS碎片的下载路径。
【文档编号】G06F9/445GK105893054SQ201610256888
【公开日】2016年8月24日
【申请日】2016年4月22日
【发明人】谢晓静
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1