CN113688121B - 多人协作的内容管理方法、相关装置及计算机存储介质 - Google Patents
多人协作的内容管理方法、相关装置及计算机存储介质 Download PDFInfo
- Publication number
- CN113688121B CN113688121B CN202111256765.8A CN202111256765A CN113688121B CN 113688121 B CN113688121 B CN 113688121B CN 202111256765 A CN202111256765 A CN 202111256765A CN 113688121 B CN113688121 B CN 113688121B
- Authority
- CN
- China
- Prior art keywords
- user
- content
- target content
- edited
- target
- 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.)
- Active
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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种多人协作的内容管理方法、相关装置及计算机存储介质,该方法包括:在接收第一用户的针对目标内容的内容解锁请求后,若当前没有第二用户对目标内容进行编辑,则为第一用户下发独占锁;然后,接收第一用户的保存请求;其中,保存请求包括第一用户对目标内容进行编辑后的内容以及第一用户对目标内容进行编辑后的内容的版本号;若第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号一致,则保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁。从而达到可以多人同时使用同一套CMS,并解决在编辑同一内容时的冲突问题,并增加工作效率的目的。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种多人协作的内容管理方法、相关装置及计算机存储介质。
背景技术
内容管理系统(Content Management System,CMS)的用户协作功能主要是为提高CMS系统使用者的工作效率,同时也避免因针对同一内容编辑冲突导致内容上线出现错误。
目前,CMS大部分不支持多用户协作,或者是仅在保存时有内容版本号(乐观锁)验证。在多人使用同一CMS工作时,一般是通过区分内容版块,将不同的用户物理地限定在不同的内容编辑范围,即不能支持多人同时对同一版块或内容协同工作,因此,工作效率十分低下,并且,也有很大的概率出现因内容编辑冲突,特别内容覆盖,导致内容错误的故障发生。
发明内容
有鉴于此,本申请提供一种多人协作的内容管理方法、相关装置及计算机存储介质,可以多人同时使用同一套CMS,并解决在编辑同一内容时的冲突问题,从而增加工作效率。
本申请第一方面提供了一种多人协作的内容管理方法,包括:
接收第一用户的针对目标内容的内容解锁请求;
判断当前是否有第二用户对所述目标内容进行编辑;其中,所述第二用户为除所述第一用户外当前在线的前端用户;
若判断出当前没有第二用户对所述目标内容进行编辑,则为所述第一用户下发独占锁;
接收所述第一用户的保存请求;其中,所述保存请求包括所述第一用户对所述目标内容进行编辑后的内容以及所述第一用户对所述目标内容进行编辑后的内容的版本号;
判断所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号是否一致;
若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁。
可选的,所述多人协作的内容管理方法,还包括:
若判断出当前有第二用户对所述目标内容进行编辑,则生成第一提示信息;其中,所述第一提示信息用于提示所述第一用户当前所述目标内容正在被其他用户编辑,并展示当前正在编辑所述目标内容的用户的信息。
可选的,所述多人协作的内容管理方法,还包括:
若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号不一致,则生成第二提示信息;其中,所述第二提示信息用于提示所述第一用户保存失败以及提示所述第一用户在刷新所述目标内容的当前页面后重新打开针对所述目标内容的编辑页面。
可选的,所述若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁之后,还包括:
记录所述第一用户针对所述目标内容的操作历史信息,并通过预设的协议向所有所述第二用户推送所述目标内容已更新的提示信息。
可选的,所述多人协作的内容管理方法,还包括:
接收所述第二用户针对所述目标内容的查询请求;
向所述第二用户展示最新的目标内容。
本申请第二方面提供了一种多人协作的内容管理装置,包括:
第一接收单元,用于接收第一用户的针对目标内容的内容解锁请求;
第一判断单元,用于判断当前是否有第二用户对所述目标内容进行编辑;其中,所述第二用户为除所述第一用户外当前在线的前端用户;
下发单元,用于若所述第一判断单元判断出,当前没有第二用户对所述目标内容进行编辑,则为所述第一用户下发独占锁;
第二接收单元,用于接收所述第一用户的保存请求;其中,所述保存请求包括所述第一用户对所述目标内容进行编辑后的内容以及所述第一用户对所述目标内容进行编辑后的内容的版本号;
第二判断单元,用于判断所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号是否一致;
保存单元,用于若所述第二判断单元判断出,所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁。
可选的,所述多人协作的内容管理装置,还包括:
第一生成单元,用于若所述第一判断单元判断出,当前有第二用户对所述目标内容进行编辑,则生成第一提示信息;其中,所述第一提示信息用于提示所述第一用户当前所述目标内容正在被其他用户编辑,并展示当前正在编辑所述目标内容的用户的信息。
可选的,所述多人协作的内容管理装置,还包括:
第二生成单元,用于若所述第二判断单元判断出,所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号不一致,则生成第二提示信息;其中,所述第二提示信息用于提示所述第一用户保存失败以及提示所述第一用户在刷新所述目标内容的当前页面后重新打开针对所述目标内容的编辑页面。
可选的,所述多人协作的内容管理装置,还包括:
记录单元,用于记录所述第一用户针对所述目标内容的操作历史信息;
推送单元,用于通过预设的协议向所有所述第二用户推送所述目标内容已更新的提示信息。
可选的,所述多人协作的内容管理装置,还包括:
第三接收单元,用于接收所述第二用户针对所述目标内容的查询请求;
展示单元,用于向所述第二用户展示最新的目标内容。
本申请第三方面提供了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任意一项所述的多人协作的内容管理方法。
本申请第四方面提供了一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如第一方面任意一项所述的多人协作的内容管理方法。
由以上方案可知,本申请提供了一种多人协作的内容管理方法、相关装置及计算机存储介质,所述多人协作的内容管理方法包括:在接收第一用户的针对目标内容的内容解锁请求后;判断当前是否有第二用户对所述目标内容进行编辑;其中,所述第二用户为除所述第一用户外当前在线的前端用户;若判断出当前没有第二用户对所述目标内容进行编辑,则为所述第一用户下发独占锁;再接收所述第一用户的保存请求;其中,所述保存请求包括所述第一用户对所述目标内容进行编辑后的内容以及所述第一用户对所述目标内容进行编辑后的内容的版本号;判断所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号是否一致;若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁。从而达到可以多人同时使用同一套CMS,并解决在编辑同一内容时的冲突问题,并增加工作效率的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种多人协作的内容管理方法的具体流程图;
图2为本申请实施例提供的一种多人协作的内容管理装置的示意图;
图3为本申请实施例提供的一种实现多人协作的内容管理方法的电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系,而术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
首先,本申请中出现的术语进行解释说明:
内容管理系统:CMS(Content Management System)是一种位于WEB前端(Web服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。
MQTT协议:消息队列遥测传输是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
WebSocket:是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
独占锁:又称为:排它锁、写锁,是一种悲观锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。它防止任何其它事务获取资源上的锁,直到在事务的末尾将资源上的原始锁释放为止。
乐观锁:相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本(Version)记录机制实现。何谓数据版本,即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个“version”字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号等于数据库表当前版本号,则予以更新,否则认为是过期数据。
本申请实施例提供了一种多人协作的内容管理方法,如图1所示,具体包括以下步骤:
S101、接收第一用户的针对目标内容的内容解锁请求。
第一用户打开目标内容的编辑页面后,目标内容处于锁定状态(不可编辑),此时通过MQTT协议订阅当前内容更新消息。用户可以点击内容解锁按钮,发送针对目标内容的解锁请求。
S102、判断当前是否有第二用户对目标内容进行编辑。
其中,第二用户为除第一用户外当前在线的前端用户。
具体的,若判断出当前没有第二用户对目标内容进行编辑,则执行步骤S104;若判断出当前有第二用户对目标内容进行编辑,则执行步骤S103。
S103、生成第一提示信息。
其中,第一提示信息用于提示第一用户当前目标内容正在被其他用户编辑,并展示当前正在编辑目标内容的用户的信息。便于第一用户快速找到当前占用目标内容的第二用户,进行线下沟通。
S104、为第一用户下发独占锁。
可以理解的是,第一用户在成功获取独占锁后,可以开始在编辑页面对目标内容进行编辑。在编辑完成后,可以通过点击保存按钮对编辑后的内容进行保存。
S105、接收第一用户的保存请求。
其中,保存请求包括第一用户对目标内容进行编辑后的内容以及第一用户对目标内容进行编辑后的内容的版本号。
S106、判断第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号是否一致。
需要说明的是,在本申请的具体实现过程中,还可以判断第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的乐观锁是否一致。
具体的,若判断出第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号一致,则执行步骤S107;若判断出第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号不一致,则执行步骤S108。
S107、保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁。
S108、生成第二提示信息。
其中,第二提示信息用于提示第一用户保存失败以及提示第一用户在刷新目标内容的当前页面后重新打开针对目标内容的编辑页面。
可选的,在申请的另一实施例中,在保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁之后,多人协作的内容管理方法的一种实施方式,还包括:
记录第一用户针对目标内容的操作历史信息,并通过预设的协议向所有第二用户推送目标内容已更新的提示信息。
其中,预设的协议可以是点不限于MQTT协议,此处不做限定。
可选的,在申请的另一实施例中,多人协作的内容管理方法的一种实施方式,还包括:
在接收第二用户针对目标内容的查询请求时;向第二用户展示最新的目标内容。
具体的,在接收第二用户针对目标内容的查询请求时;查询目标内容的最新版本,并向第二用户展示最新的版本的内容。
需要说明的是,在实现本申请的方法时,有如下角色及子系统参与:
a)CMS用户,User1,User2,…,UserN;
b)CMS前端页面;
c)CMS后端服务(接口服务、数据库服务);
d)消息中间件(可以是但不限于基于MQTT的消息中间件);
e)被协作编辑的内容,Content1,Content2,…,ContentN。
可以理解的是,本申请在实现的过程中,须有以下准备步骤:
相关子系统需要正常启动:
1)CMS后端服务正确部署,正常启动,并向外提供服务;
2)CMS前端页面正确部署,正常启动,并向外提供服务;
3)消息中间件正确部署,正常启动,并向外提供服务。
现对本申请进行举例说明:
假设目前有User1,User2两个用户有需要同时编辑同一个内容Content1的需求。User1,User2用户通过本申请完成协作过程如下:
1、首先User1、User2登录CMS系统前端,保持在线状态;其中CMS系统前端使用MQTT协议通过WebSocket连接到MQTT消息中间件,保持连接。User1以及User2打开Content1内容,此时Content1内容为【已锁定】状态:只读,不可编辑。
2、User1、User2在的前端页面向MQTT消息中间件订阅当前的Content1内容的消息Topic;其中,Topic地址形可以如但不限于/cms/content1。
3、User1获取Content1内容的独占锁,解除内容的只读状态,进入编辑状态。
1)User1操作CMS前端页面上针对Content1的解锁按钮;
2)CMS前端页面向CMS后端服务发送User1针对Content1获取独占锁的同步请求,请求的内容主要内容包括:A.请求类型:获取独占锁;B.锁请求者:User1;C.锁定对象:Content1;
3)CMS后端服务处理2)步骤的同步请求:验证Content1内容是否存在被其他用户拥有独占锁。
A.若Content1内容不存在被其他用户拥有独占锁:
a)设置User1-Content1的独占锁关系;
b)向MQTT消息中间件推送消息,消息内容为User1-Content1的独占锁关系,消息主要内容包括:Topic: /cms/content1、消息类型:设置独占锁和iii.锁拥有者:User1;
c)转到步骤C。
B.若Content1内容存在被其他用户拥有独占锁,转到步骤D。
C.向前端页面返回2)步骤的同步请求结果,即User1获取Content1的独占锁成功。
D.向前端页面返回2)步骤的同步请求结果,即User1获取Content1的独占锁失败以及当前Content1的独占锁拥有者信息。
4)MQTT消息中间件向地址为/cms/content1的Topic广播3).A.b)步骤的消息。
5)CMS前端页面处理3)步骤返回的针对2)步骤同步请求的结果,因2)步骤同步请求由User1发起,故本步骤只针对User1:
A.针对3).C步骤,获取独占锁成功状态:
a)向CMS后端服务请求Content1的最新版本,返回的内容主要包括:Content1内容以及Content1内容当前最新版本号Ver.[n],其中n为正整数;
b)更新Content1的内容编辑页面到Content1的最新内容状态;
c)更新Content1的解锁按钮为【已解锁】状态;
d)Content1解除只读状态,进入编辑状态;
e)允许User1内容编辑操作。
B.针对3).D步骤,获取独占锁失败状态:
a)Content1保持只读状态;
b)向User1提示Content1当前正在编辑的用户信息。
6)CMS前端页面处理4).A步骤的消息;
A.因消息是针对User1在2)步骤发起的请求触发,所以对于User1忽略该消息。
B.针对User2,更新User2的Content1内容页面:
a)保持Content1只读状态;
b)更新Content1的解锁按钮为【不可操作】状态;
c)向User2提示Content1当前正在由User1拥有独占锁,并且正在编辑Content1内容。
7)User1操作Content1内容:
A.通过前端页面编辑Content1内容;
B.通过保存按钮保存Content1编辑后的内容。
8)CMS前端页面向CMS后端服务发送User1针对Content1内容保存的同步请求,请求的内容主要内容包括:请求类型:内容保存;更新后的Content1内容和内容版本号:Ver.[n]。
9)CMS后端服务处理8)步骤的同步请求:
A.开启数据库事务;
B.基于乐观锁机制更新Content1内容:
a)查询Content1当前的最新版本Ver.[m],其中m为正整数;
b)验证Ver.[m]是否与3.8)步骤中携带的Content1的版本号Ver.[n]相等;
i.相等:转到步骤c);
ii.不等:转到步骤d)。
c)更新数据;
i.写入8)步骤中携带的更新后的Content1内容;
ii.更新Content1的版本号为: Ver.[n+1];
iii.记录Content1的操作历史,主要内容包括:操作员:User1、写入内容:更新后的Content1内容、操作时间:当前系统时间和更新后的版本号:Ver.[n+1];
iv.更新成功,转到步骤D。
d)更新失败,转到步骤E;
C.提交数据库事务。
D.Content1更新成功。
a)向MQTT消息中间件推送消息,消息内容为Content1内容更新,消息主要内容包括:Topic: /cms/content1和消息类型:内容更新;
b)向前端页面返回8)步骤的同步请求结果,即User1更新Conent1成功。
E.Content1更新失败;
a)向前端页面返回8)步骤的同步请求结果,其至少包括失败原因:乐观锁导致更新失败。
10)MQTT消息中间件:
A.向地址为/cms/content1的Topic广播9).D.a)步骤的消息。
11)CMS前端页面处理9)步骤返回的针对8)步骤同步请求的结果,因8)步骤同步请求由User1发起,故本步骤只针对User1。
A.针对9).D步骤,Content1更新成功:
a)向CMS后端服务请求Content1的最新版本,返回的内容主要包括:Content1内容、Content1内容当前最新版本号Ver.[n+1],其中n为正整数和Content1的操作历史记录;
b)更新Content1的内容编辑页面到Content1的最新内容状态;
c)保持Content1的解锁按钮为【已解锁】状态;
d)更新Content1的操作历史记录列表;
e)向User1提示:Content1保存成功。
B.针对9).E步骤,Content1更新失败:
a)向User1提示:Content1保存失败及失败原因。
12)CMS前端页面处理10).A步骤的消息:
A.因消息是针对User1在8)步骤发起的请求触发,所以对于User1忽略该消息;
B.针对User2,更新User2的Content1内容页面:
a)向CMS后端服务请求Content1的最新版本,返回的内容主要包括:Content1内容、Content1内容当前最新版本号Ver.[n+1],其中n为正整数以及Content1的操作历史记录;
b)更新Content1的内容编辑页面到Content1的最新内容状态;
c)更新Content1的操作历史记录列表;
d)保持Content1只读状态;
e)保持Content1的解锁按钮为【不可操作】状态;
f)向User2提示Content1当前正在由User1拥有独占锁,并且正在编辑Content1内容。
13)User1操作Content1内容:
A.有继续编辑Content1的需求,则重复7)-13)步骤序列;
B.无继续编辑Content1的需求,转到步骤4;
4、User1释放Content1内容的独占锁,退出编辑状态:
1)User1操作CMS前端页面上针对Content1的锁定按钮;
2)CMS前端页面向CMS后端服务发送User1针对Content1释放独占锁的同步请求,请求的内容主要内容包括:请求类型:释放独占锁、锁请求者:User1以及锁定对象:Content1;
3)CMS后端服务处理2)步骤的同步请求:验证Content1内容是否存在被User1拥有的独占锁:
A.若Content1内容存在被User1拥有的独占锁:
a)解除User1-Content1的独占锁关系;
b)向MQTT消息中间件推送消息,消息内容为User1-Content1的独占锁关系解除,消息主要内容包括:Topic: /cms/content1和消息类型:解除独占锁;
c)转到步骤C。
B.若Content1内容不存在被User1拥有的独占锁,转到步骤D。
C.向前端页面返回2)步骤的同步请求结果,主要内容包括:
a)User1释放Content1的独占锁成功。
D.向前端页面返回2)步骤的同步请求结果,主要内容包括:
a)User1释放Content1的独占锁失败;
b)失败原因User1当前未占有Content1的独占锁。
4)MQTT消息中间件:
A.向地址为/cms/content1的Topic广播3).A.b)步骤的消息。
5)CMS前端页面处理3)步骤返回的针对2)步骤同步请求的结果,因2)步骤同步请求由User1发起,故本步骤只针对User1:
A.针对3).D步骤,获取独占锁失败状态:
a)向User1提示Content1独占锁释放失败。
B.针对3).C/3).D步骤:
a)向CMS后端服务请求Content1的最新版本,返回的内容主要包括:Content1内容、Content1内容当前最新版本号Ver.[n+1],其中n为正整数以及Content1的操作历史记录;
b)更新Content1的内容编辑页面到Content1的最新内容状态;
c)更新Content1的解锁按钮为【已锁定】状态;
d)更新Content1的操作历史记录列表;
e)Content1解除编辑状态,进入只读状态。
6)CMS前端页面处理4).A步骤的消息:
A.因消息是针对User1在2)步骤发起的请求触发,所以对于User1忽略该消息;
B.针对User2,更新User2的Content1内容页面:
a)向CMS后端服务请求Content1的最新版本,返回的内容主要包括:Content1内容、Content1内容当前最新版本号Ver.[n+1],其中n为正整数以及Content1的操作历史记录;
b)更新Content1的内容编辑页面到Content1的最新内容状态;
c)更新Content1的解锁按钮为【已锁定】状态;
d)更新Content1的操作历史记录列表;
e)Content1保持只读状态;
f)移除Content1当前的独占锁状态。
5、结束。
由以上方案可知,本申请提供了一种多人协作的内容管理方法:在接收第一用户的针对目标内容的内容解锁请求后;判断当前是否有第二用户对目标内容进行编辑;其中,第二用户为除第一用户外当前在线的前端用户;若判断出当前没有第二用户对目标内容进行编辑,则为第一用户下发独占锁;再接收第一用户的保存请求;其中,保存请求包括第一用户对目标内容进行编辑后的内容以及第一用户对目标内容进行编辑后的内容的版本号;判断第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号是否一致;若判断出第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号一致,则保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁。从而达到可以多人同时使用同一套CMS,并解决在编辑同一内容时的冲突问题,并增加工作效率的目的。
本申请另一实施例提供了一种多人协作的内容管理装置,如图2所示,具体包括:
第一接收单元201,用于接收第一用户的针对目标内容的内容解锁请求。
第一判断单元202,用于判断当前是否有第二用户对目标内容进行编辑。
其中,第二用户为除第一用户外当前在线的前端用户。
下发单元203,用于若第一判断单元202判断出,当前没有第二用户对目标内容进行编辑,则为第一用户下发独占锁。
第二接收单元204,用于接收第一用户的保存请求。
其中,保存请求包括第一用户对目标内容进行编辑后的内容以及第一用户对目标内容进行编辑后的内容的版本号。
第二判断单元205,用于判断第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号是否一致。
保存单元206,用于若第二判断单元205判断出,第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号一致,则保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图1所示,此处不再赘述。
可选的,在本申请的另一实施例中,多人协作的内容管理装置的一种实施方式,还包括:
第一生成单元,用于若第一判断单元202判断出,当前有第二用户对目标内容进行编辑,则生成第一提示信息。
其中,第一提示信息用于提示第一用户当前目标内容正在被其他用户编辑,并展示当前正在编辑目标内容的用户的信息。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图1所示,此处不再赘述。
可选的,在本申请的另一实施例中,多人协作的内容管理装置的一种实施方式,还包括:
第二生成单元,用于若第二判断单元判断出,第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号不一致,则生成第二提示信息。
其中,第二提示信息用于提示第一用户保存失败以及提示第一用户在刷新目标内容的当前页面后重新打开针对目标内容的编辑页面。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图1所示,此处不再赘述。
可选的,在本申请的另一实施例中,多人协作的内容管理装置的一种实施方式,还包括:
记录单元,用于记录第一用户针对目标内容的操作历史信息。
推送单元,用于通过预设的协议向所有第二用户推送目标内容已更新的提示信息。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
可选的,在本申请的另一实施例中,多人协作的内容管理装置的一种实施方式,还包括:
第三接收单元,用于接收第二用户针对目标内容的查询请求。
展示单元,用于向第二用户展示最新的目标内容。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
由以上方案可知,本申请提供了一种多人协作的内容管理装置:第一接收单元201在接收第一用户的针对目标内容的内容解锁请求后;第一判断单元202判断当前是否有第二用户对目标内容进行编辑;其中,第二用户为除第一用户外当前在线的前端用户;若第一判断单元202判断出当前没有第二用户对目标内容进行编辑,则下发单元203为第一用户下发独占锁;第二接收单元204接收第一用户的保存请求;其中,保存请求包括第一用户对目标内容进行编辑后的内容以及第一用户对目标内容进行编辑后的内容的版本号;第二判断单元205判断第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号是否一致;若第二判断单元205判断出第一用户对目标内容进行编辑后的内容的版本号与数据库中的目标内容的版本号一致,则保存单元206保存第一用户对目标内容进行编辑后的内容,并释放为第一用户下发的独占锁。从而达到可以多人同时使用同一套CMS,并解决在编辑同一内容时的冲突问题,并增加工作效率的目的。
本申请另一实施例提供了一种电子设备,如图3所示,包括:
一个或多个处理器301。
存储装置302,其上存储有一个或多个程序。
当所述一个或多个程序被所述一个或多个处理器301执行时,使得所述一个或多个处理器301实现如上述实施例中任意一项所述的多人协作的内容管理方法。
本申请另一实施例提供了一种计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项所述的多人协作的内容管理方法。
在本申请公开的上述实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,直播设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种多人协作的内容管理方法,其特征在于,包括:
接受第一用户和第二用户针对目标内容的查询请求;并反馈所述目标内容的最新内容信息给第一用户和第二用户,使所述目标内容分别显示在第一用户和第二用户的内容管理系统的前端页面上;
接收第一用户的针对目标内容的内容解锁请求;其中,所述内容解锁请求是所述第一用户通过内容管理系统的前端页面上的解锁按钮所触发的请求;
判断当前是否有其他用户对所述目标内容进行编辑;
若判断出当前有其他用户对所述目标内容进行编辑,则生成第一提示信息;其中,所述第一提示信息用于提示所述第一用户当前所述目标内容正在被其他用户编辑,并展示当前正在编辑所述目标内容的用户的信息;
若判断出当前没有其他用户对所述目标内容进行编辑,则为所述第一用户下发独占锁;并将所述第二用户的解锁按钮设置为不可操作状态,且向第二用户提示所述目标内容的独占锁由所述第一用户拥有并正在编辑所述目标内容;
接收所述第一用户的保存请求;其中,所述保存请求包括所述第一用户对所述目标内容进行编辑后的内容以及所述第一用户对所述目标内容进行编辑后的内容的版本号;
判断所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号是否一致;
若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁;
将所述第二用户的前端页面中所显示的目标内容更新到最新内容状态,并更新所述第二用户的前端页面中的解锁按钮为已锁定状态。
2.根据权利要求1所述的内容管理方法,其特征在于,还包括:
若判断出所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号不一致,则生成第二提示信息;其中,所述第二提示信息用于提示所述第一用户保存失败以及提示所述第一用户在刷新所述目标内容的当前页面后重新打开针对所述目标内容的编辑页面。
3.一种多人协作的内容管理装置,其特征在于,包括:
第三接收单元,用于接受第一用户和第二用户针对目标内容的查询请求;并反馈所述目标内容的最新内容信息给第一用户和第二用户,使所述目标内容分别显示在第一用户和第二用户的内容管理系统的前端页面上;
第一接收单元,用于接收第一用户的针对目标内容的内容解锁请求;其中,所述内容解锁请求是所述第一用户通过内容管理系统的前端页面上的解锁按钮所触发的请求;
第一判断单元,用于判断当前是否有其他用户对所述目标内容进行编辑;
第一生成单元,用于若所述第一判断单元判断出,当前有其他用户对所述目标内容进行编辑,则生成第一提示信息;其中,所述第一提示信息用于提示所述第一用户当前所述目标内容正在被其他用户编辑,并展示当前正在编辑所述目标内容的用户的信息;
下发单元,用于若所述第一判断单元判断出,当前没有其他用户对所述目标内容进行编辑,则为所述第一用户下发独占锁;并将所述第二用户的解锁按钮设置为不可操作状态,且向第二用户提示所述目标内容的独占锁由所述第一用户拥有并正在并集所述目标内容;
第二接收单元,用于接收所述第一用户的保存请求;其中,所述保存请求包括所述第一用户对所述目标内容进行编辑后的内容以及所述第一用户对所述目标内容进行编辑后的内容的版本号;
第二判断单元,用于判断所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号是否一致;
保存单元,用于若所述第二判断单元判断出,所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号一致,则保存所述第一用户对所述目标内容进行编辑后的内容,并释放所述为所述第一用户下发的独占锁;并将所述第二用户的前端页面中所显示的目标内容更新到最新内容状态。
4.根据权利要求3所述的内容管理装置,其特征在于,还包括:
第二生成单元,用于若所述第二判断单元判断出,所述第一用户对所述目标内容进行编辑后的内容的版本号与数据库中的所述目标内容的版本号不一致,则生成第二提示信息;其中,所述第二提示信息用于提示所述第一用户保存失败以及提示所述第一用户在刷新所述目标内容的当前页面后重新打开针对所述目标内容的编辑页面。
5.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至2中任一所述的多人协作的内容管理方法。
6.一种计算机存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至2中任一所述的多人协作的内容管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256765.8A CN113688121B (zh) | 2021-10-27 | 2021-10-27 | 多人协作的内容管理方法、相关装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256765.8A CN113688121B (zh) | 2021-10-27 | 2021-10-27 | 多人协作的内容管理方法、相关装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113688121A CN113688121A (zh) | 2021-11-23 |
CN113688121B true CN113688121B (zh) | 2022-03-01 |
Family
ID=78588358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111256765.8A Active CN113688121B (zh) | 2021-10-27 | 2021-10-27 | 多人协作的内容管理方法、相关装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688121B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115687365A (zh) * | 2022-11-29 | 2023-02-03 | 优酷网络技术(北京)有限公司 | 表单处理方法、设备、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655845A (zh) * | 2008-08-21 | 2010-02-24 | 北京亿企通信息技术有限公司 | 一种多人协同工作环境下文档处理的方法 |
CN103544189A (zh) * | 2012-07-17 | 2014-01-29 | 珠海金山办公软件有限公司 | 锁定正在编辑文件的方法及系统 |
CN104717242A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 共享文件的多用户编辑方法、服务器及用户端 |
CN110750364A (zh) * | 2019-09-03 | 2020-02-04 | 苏宁云计算有限公司 | 一种多用户在线编辑管理方法、装置及系统 |
CN112258140A (zh) * | 2020-09-16 | 2021-01-22 | 北京仿真中心 | 一种基于权限控制的文档在线编辑系统和方法 |
CN112380172A (zh) * | 2020-11-03 | 2021-02-19 | 中国直升机设计研究所 | 一种可以锁定与并发的多人表格协作架构及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081946B (zh) * | 2010-11-30 | 2013-04-17 | 上海交通大学 | 在线协同非线性编辑系统 |
CN102262620B (zh) * | 2011-08-04 | 2014-11-26 | 无锡永中软件有限公司 | 一种文档协作方法 |
CN102521407B (zh) * | 2011-12-28 | 2015-04-01 | 谢勇 | 一种多用户之间的文档协作方法 |
CN106354732B (zh) * | 2015-07-17 | 2019-07-05 | 中国石油化工股份有限公司 | 一种支持并发协同的离线数据版本冲突解决方法 |
CN111581925B (zh) * | 2020-05-07 | 2023-08-18 | 广东电网有限责任公司电力调度控制中心 | 多用户统一版本编辑方法及计算机可读存储介质 |
-
2021
- 2021-10-27 CN CN202111256765.8A patent/CN113688121B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655845A (zh) * | 2008-08-21 | 2010-02-24 | 北京亿企通信息技术有限公司 | 一种多人协同工作环境下文档处理的方法 |
CN103544189A (zh) * | 2012-07-17 | 2014-01-29 | 珠海金山办公软件有限公司 | 锁定正在编辑文件的方法及系统 |
CN104717242A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 共享文件的多用户编辑方法、服务器及用户端 |
CN110750364A (zh) * | 2019-09-03 | 2020-02-04 | 苏宁云计算有限公司 | 一种多用户在线编辑管理方法、装置及系统 |
CN112258140A (zh) * | 2020-09-16 | 2021-01-22 | 北京仿真中心 | 一种基于权限控制的文档在线编辑系统和方法 |
CN112380172A (zh) * | 2020-11-03 | 2021-02-19 | 中国直升机设计研究所 | 一种可以锁定与并发的多人表格协作架构及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113688121A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060173850A1 (en) | Method and apparatus for collision resolution in an asynchronous database system | |
US7403946B1 (en) | Data management for netcentric computing systems | |
US6662196B2 (en) | Collision avoidance in bidirectional database replication | |
EP1271321B1 (en) | System and method for recovering from a failed synchronization session | |
RU2686594C2 (ru) | Файловая служба, использующая интерфейс совместного файлового доступа и передачи состояния представления | |
US8046498B2 (en) | Data synchronization protocol | |
EP2115976B1 (en) | Method and system for resource-based synchronization between endpoints in a web-based real time collaboration | |
US7293009B2 (en) | System and method for flushing bean cache | |
US7805420B2 (en) | Versioning and concurrency control for multiple client access of data | |
US11429675B2 (en) | Systems and methods for managing transactional operation | |
EP2047382B1 (en) | Two-way and multi-master synchronization over web syndications | |
US7945536B2 (en) | Method and system for recovering a previous version of a document from a current version of the document | |
US20060031427A1 (en) | Configuration commit database approach and session locking approach in a two-stage network device configuration process | |
JP2005129018A (ja) | オペレーション・システム・フォルダー式ファイル・システムにおけるコラボレーション・システムの属性を提供するための方法及び装置 | |
Holliday | Replicated database recovery using multicast communication | |
US20060149791A1 (en) | Database-driven distributed recovery | |
CN113688121B (zh) | 多人协作的内容管理方法、相关装置及计算机存储介质 | |
US7328222B2 (en) | Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache | |
WO2006031615A2 (en) | Apparatus and method for building conjoined computer systems | |
EP1934783A1 (en) | Productivity suite to line of business synchronization mechanism | |
AU2015201041B2 (en) | Data synchronization protocol | |
Paul | Pro SQL server 2005 replication | |
JPH11232294A (ja) | Wwwシステムおよびwwwシステムにおけるセッション管理方法 | |
RU2419849C2 (ru) | Механизм синхронизации комплекта приложений для продуктивной работы и бизнес-приложений | |
AU2012201747B2 (en) | Data synchronization protocol |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |