CN104980513B - 一种多客户端协同分组并发冲突及权限处理方法 - Google Patents
一种多客户端协同分组并发冲突及权限处理方法 Download PDFInfo
- Publication number
- CN104980513B CN104980513B CN201510343240.6A CN201510343240A CN104980513B CN 104980513 B CN104980513 B CN 104980513B CN 201510343240 A CN201510343240 A CN 201510343240A CN 104980513 B CN104980513 B CN 104980513B
- Authority
- CN
- China
- Prior art keywords
- grouping
- client
- server
- grouped
- information data
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
Abstract
本发明提供了一种多客户端协同分组的并发冲突及权限处理方法,包括:任一客户端每次进入分组操作时,首先从服务器获取服务器上当前的分组信息数据;多个客户端对若干待分组对象进行分组,并将分组结果发送至服务端;服务端对最先收到的客户端分组结果进行冲突判断,如不冲突,则按该分组结果更新服务器的分组信息数据并将其推送至其他客户端;如冲突,返回冲突提示;服务端依时间顺序对收到的其他客户端分组结果进行处理,可进行多次分组操作时,直至所有客户端分组操作结束。这种并发冲突及权限处理方法可以使得在多个客户端处同时进行分组处理,方便多用户同时对分组对象进行操作,而互不影响,分组后的结果也可以通过服务端进行共享。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种多客户端协同分组并发冲突及权限处理方法。
背景技术
在活动管理中,我们经常需要对参与人员进行分组,并将分组的结果及时的反馈到活动参与者,这些任务对于组织者来说显得尤为重要。传统的方法主要是通过人工核对的方式进行。
传统的人工分组方法对于活动组织者来说,过程不直观,手动核对人员容易出错,过程比较繁琐,而分组的过程中又需要和参与者进行持续的沟通反馈分组信息,对分组的及时性和正确性有很高的要求。因此,传统的人工分组存在很大的改进空间。
发明内容
本发明的目的在于提供一种多客户端协同分组并发冲突及权限处理方法,以解决现有的人工分组方法存在的分组及时性及正确性较差的问题。
本发明的另一目的在于提供一种多客户端协同分组并发冲突及权限处理方法,以解决多客户端协同分组时易于冲突的问题。
为实现上述目的,本发明提供了一种多客户端协同分组并发冲突及权限处理方法,包括以下步骤:
S1:任一客户端每次进入分组操作时,首先从服务器获取服务器上当前的分组信息数据;
S2:多个客户端对若干待分组对象进行分组,对任一客户端其分组完成后更新本地的分组信息数据并将分组结果发送至服务端;
S3:服务端对最先收到的客户端分组结果进行冲突判断,如不冲突,则按该分组结果更新服务器的分组信息数据,随后更新后的分组信息数据推送至其他客户端;如冲突,返回冲突提示,客户端按服务器当前的分组信息数据更新本地的分组信息数据后再重新提交分组结果后执行步骤S3;
S4:服务端再依时间顺序对收到的其他客户端分组结果返回步骤S3进行处理,直至多个客户端本次分组结果均处理完毕;
S5: 多个客户端继续进行分组操作时,返回步骤S2继续执行,直至所有客户端分组操作结束。
较佳地,所述分组信息数据包括所述待分组对象的若干种组合方式,所述组合方式为按待分组对象的信息进行组合。
较佳地,所述待分组对象的信息包括头像、用户名或其他待分组对象的基本信息。
较佳地,所述步骤S2中任一客户端对若干待分组对象进行分组的过程具体为:
S21:初始化待分组对象列表,增加一个或多个指定分组,每个指定分组中设置若干数量的空槽;
S22:选取若干待分组对象中的一个,将其移动至指定分组的目标空槽处,如该目标空槽处已有分组对象,将目标空槽处的分组对象替换为当前移动的分组对象,如该目标空槽处无分组对象,则将当前移动的分组对象置于目标空槽中,完成对该分组对象的分组;
S23:判断是否完成分组,如否则重复步骤S22,如是则执行步骤S24;
S24:将指定分组的空槽数量及待分组对象在指定分组中所处空槽的位置信息存储为当前的分组结果。
较佳地,所述步骤S22中移动待分组对象的操作具体为:长按或单击或多次点击以选中一待分组对象,然后拖动选中的待分组对象至目标空槽处,松开拖动操作则完成对该分组对象的分组。
较佳地,所述分组信息数据包括:版本号、变更记录及分组数据,其中,每个版本号与一组分组数据相对应,所述分组数据包括客户端所执行的分组结果,所述变更记录包括客户端编号及该客户端所执行的分组结果的变更关系,当分组信息数据更新时,版本号、变更记录及分组数据随之更新。
较佳地,所述步骤S3具体为:
S31:检查服务器上当前的分组信息数据是否上锁;
S32:如否,则判断为不冲突,并对服务器上当前的分组信息数据进行上锁,如是,则判断为冲突,返回冲突提示,更新本地的分组信息数据,同时保持分组结果直至解锁;
S33:将收到的客户端分组结果保存为新的分组信息数据;
S34:释放锁,并将新的分组信息数据推送至其他客户端。
较佳地,所述步骤S3还包括:返回冲突提示后,更新本地的分组信息数据具体为:删除本地最近一次变更记录,按当前服务端的分组信息数据更新分组数据,以及更新版本号。
本发明提供的多人协同分组并发冲突及权限处理方法,通过在多人协同进行分组操作时,对来自多个客户端的分组数据进行并发冲突判断处理,对正在处理某一分组数据的服务端进行锁定,处理后将服务端更新的分组信息数据推送至其他客户端,再处理来自其他客户端的数据。这种并发冲突及权限处理方法可以使得在多个客户端处同时进行分组处理,方便多用户同时对分组对象进行操作,而互不影响,分组后的结果也可以通过服务端进行共享。
附图说明
图1为本发明提供的多客户端协同分组并发冲突及权限处理方法步骤示意图;
图2为本发明提供的对待分组对象进行分组过程示意图;
图3为本发明方法中服务端对客户端分组结果进行冲突判断的步骤流程图。
具体实施方式
为更好地说明本发明,兹以一优选实施例,并配合附图对本发明作详细说明,具体如下:
如图1所示,本发明提供了一种多客户端协同分组的并发冲突及权限处理方法,包括以下步骤:
S1:任一客户端每次进入分组操作时,首先从服务器获取服务器上当前的分组信息数据;
S2:多个客户端对若干待分组对象进行分组,对任一客户端其分组完成后更新本地的分组信息数据并将分组结果发送至服务端;
S3:服务端对最先收到的客户端分组结果进行冲突判断,如不冲突,则按该分组结果更新服务器的分组信息数据,随后更新后的分组信息数据推送至其他客户端;如冲突,返回冲突提示,客户端按服务器当前的分组信息数据更新本地的分组信息数据后再重新提交分组结果后执行步骤S3;
S4:服务端再依时间顺序对收到的其他客户端分组结果返回步骤S3进行处理,直至多个客户端本次分组结果均处理完毕;
S5: 多个客户端继续进行分组操作时,返回步骤S2继续执行,直至所有客户端分组操作结束。
其中,如图2所示,步骤S2中任一客户端对若干待分组对象进行分组的过程具体为:包括:
S21:初始化待分组对象列表,增加一个或多个指定分组,并未每个指定分组中设置若干数量的空槽。
当指定分组为多组时,客户端可依据预先设定的分组方式进行指定分组的初始化,如指定分组中空槽的数量、各空槽的对应位置关系(例如空槽顺次排列或者在进行赛事类活动时,指定分组的全部空槽中的某两个或多个为一小组或对手关系)等。客户端对待分组对象的分组操作即为将其划分进入某一指定分组内的某个目标空槽处的过程。
S22:选取若干待分组对象中的一个,将其移动至指定分组的目标空槽处,如该目标空槽处已有分组对象,将目标空槽处的分组对象替换为当前移动的分组对象,如该目标空槽处无分组对象,则将当前移动的分组对象置于目标空槽中,完成对该分组对象的分组。
S23:判断是否完成分组,如否则重复步骤S22,如是则执行步骤S24。
S24:将指定分组的空槽数量及待分组对象在指定分组中所处空槽的位置信息存储为当前的分组结果,并发送至服务端。
其中,步骤S22中移动待分组对象的操作具体为:长按或单击或多次点击以选中一待分组对象,然后拖动选中的待分组对象至目标空槽处,松开拖动操作则完成对该分组对象的分组。
其中,如图3所示,步骤S3具体过程为:
S31:检查服务器上当前的分组信息数据是否上锁;
S32:如否,则判断为不冲突,并对服务器上当前的分组信息数据进行上锁,如是,则判断为冲突,返回冲突提示,更新本地的分组信息数据,同时保持分组结果直至解锁;
S33:将收到的客户端分组结果保存为新的分组信息数据;
S34:释放锁,并将新的分组信息数据推送至其他客户端。
步骤S3还包括:返回冲突提示后,接收到冲突提示的客户端更新本地的分组信息数据具体为:删除本地最近一次变更记录,按当前服务端的分组信息数据更新分组数据,以及更新版本号。
上述分组信息数据包括待分组对象的若干种组合方式,其中组合方式为按待分组对象的信息进行组合。其中,分组信息数据具体包括:版本号、变更记录及分组数据,每个版本号与一组分组数据相对应,所述分组数据包括客户端所执行的分组结果,所述变更记录包括客户端编号及该客户端所执行的分组结果的变更关系,当分组信息数据更新时,版本号、变更记录及分组数据随之更新。
上述初始化过程中,初始化的待分组对象的信息可以包括头像、用户名或其他待分组对象的基本信息。
例如,以两个客户端编辑分组为例,定义:两个客户端分别为C1、C2,服务器端为S,初始待分组对象分别为u1,u2,...至u10。
1. 初始状态:服务端S无分组记录和数据,服务端初始版本号为Vs=0,C1、C2进入分组管理界面,请求服务端S数据,待分组列表里列出u1至u10,C1客户端分组版本号Vc1=Vs=0,C2客户端分组版本号Vc2=Vs=0。
2. C1客户端添加分组1(g1),C1客户端的变更记录为:C1 ADD group g1, 分组数据为group[0]=g1,C1客户端版本号+1后Vc1=1。完成该操作后C1将C1版本号、变更记录、分组数据自动上传至服务端。
3. C2在C1操作过程中,C2也添加分组1,于是C2的变更记录为:C2 ADD group g1,分组数据为group[0]=g1,Vc2=1,C2将其自动上传至服务端。
4. 服务端S先收到C1传来的分组结果,S先检查版本号Vs没有上锁,如未上锁且Vs=0<Vc1,S为可更新数据状态。则服务端S进行如下操作:a) Vs加读写锁;b)保存变更记录C1ADD group g1;c)更新分组数据group[0]=g1;d)更新Vs=1;e)释放Vs的锁;f)推送通知除C1之外的其他客户端更新数据,本实施例中推送至C2
5. C2收到S的推送更新通知后做如下操作:a) 调用服务端S数据更新接口,获取服务端版本号Vs,服务端分组数据; b) 删除C2版本号0至1之间的变更记录;c) 更新本地分组数据group[0]=g1; d)更新本地版本号 Vc2=Vs=1。完成后C1,S,C2数据同步。
6. 如果C2在收到S的推送更新之前向S提交数据,服务端S收到C2传来的数据,S检查版本号Vs此时为锁住状态,hold至Vs锁释放,同步骤4,S检查Vs=1=Vc2,Vs与Vc2版本号冲突,S返回冲突错误消息给C2,
消息内容包括:S版本号Vs=1,S最新分组数据group[0]=g1。
C2收到S返回的冲突错误消息后,做如下操作:a) 删除C2版本号0至1之间的变更记录,b) 更新本地分组数据group[0]=g1, c)更新本地版本号 Vc2=Vs=1。完成后C1,S,C2数据同步。
7. 如果C2在收到S的推送更新之后向S提交数据,则服务端继续按步骤4中进行处理C2的分组结果。
对于C2,在服务端已有C1的分组结果并推送至C2后,C2再次编辑分组,将u1拖动至分组1的第1格,变更记录为:C2 move u1 g1 1。
8. S接收步骤7的C2传来数据,S更新后:变更记录由C1 ADD group g1变为C2move u1 g1 1; Vs版本号为2,S推送更新消息给C1
9. 同理5,C1更新本地数据使其与S同步。
10. 重复步骤2-9操作,直至C1、C2不再继续进行分组。
此时,服务端具有几种来自C1、C2的不同版本号的分组信息数据,而客户端C1、C2处显示服务端最新版本的分组信息数据。
本发明方法中的客户端可以为手机、PAD、计算机或其他可互相交互数据及进行数据处理的设备,该方法通过在多客户端协同进行分组操作时,对来自多个客户端的分组数据进行并发冲突判断处理,对正在处理某一分组数据的服务端进行锁定,处理后将服务端更新的分组信息数据推送至其他客户端,再处理来自其他客户端的数据。这种并发冲突及权限处理方法可以使得在多个客户端处同时进行分组处理,方便多用户同时对分组对象进行操作,而互不影响,分组后的结果也可以通过服务端进行共享。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。
Claims (7)
1.一种多客户端协同分组并发冲突及权限处理方法,其特征在于,包括以下步骤:
S1:任一客户端每次进入分组操作时,首先从服务器获取服务器上当前的分组信息数据;
S2:多个客户端对若干待分组对象进行分组,对任一客户端其分组完成后更新本地的分组信息数据并将分组结果发送至服务端:
S21:初始化待分组对象列表,增加一个或多个指定分组,每个指定分组中设置若干数量的空槽;
S22:选取若干待分组对象中的一个,将其移动至指定分组的目标空槽处,如该目标空槽处已有分组对象,将目标空槽处的分组对象替换为当前移动的分组对象,如该目标空槽处无分组对象,则将当前移动的分组对象置于目标空槽中,完成对该分组对象的分组;
S23:判断是否完成分组,如否则重复步骤S22,如是则执行步骤S24;
S24:将指定分组的空槽数量及待分组对象在指定分组中所处空槽的位置信息存储为当前的分组结果;
S3:服务端对最先收到的客户端分组结果进行冲突判断,如不冲突,则按该分组结果更新服务器的分组信息数据,随后更新后的分组信息数据推送至其他客户端;如冲突,返回冲突提示,客户端按服务器当前的分组信息数据更新本地的分组信息数据后再重新提交分组结果后执行步骤S3;
S4:服务端再依时间顺序对收到的其他客户端分组结果返回步骤S3进行处理,直至多个客户端本次分组结果均处理完毕;
S5:多个客户端继续进行分组操作时,返回步骤S2继续执行,直至所有客户端分组操作结束。
2.根据权利要求1所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述分组信息数据包括所述待分组对象的若干种组合方式,所述组合方式为按待分组对象的信息进行组合。
3.根据权利要求2所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述待分组对象的信息包括头像、用户名或其他待分组对象的基本信息。
4.根据权利要求1所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述步骤S22中移动待分组对象的操作具体为:长按或单击或多次点击以选中一待分组对象,然后拖动选中的待分组对象至目标空槽处,松开拖动操作则完成对该分组对象的分组。
5.根据权利要求1所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述分组信息数据包括:版本号、变更记录及分组数据,其中,每个版本号与一组分组数据相对应,所述分组数据包括客户端所执行的分组结果,所述变更记录包括客户端编号及该客户端所执行的分组结果的变更关系,当分组信息数据更新时,版本号、变更记录及分组数据随之更新。
6.根据权利要求1所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述步骤S3具体为:
S31:检查服务器上当前的分组信息数据是否上锁;
S32:如否,则判断为不冲突,并对服务器上当前的分组信息数据进行上锁,如是,则判断为冲突,返回冲突提示,更新本地的分组信息数据,同时保持分组结果直至解锁;
S33:将收到的客户端分组结果保存为新的分组信息数据;
S34:释放锁,并将新的分组信息数据推送至其他客户端。
7.根据权利要求5所述的多客户端协同分组并发冲突及权限处理方法,其特征在于,所述步骤S3还包括:返回冲突提示后,更新本地的分组信息数据具体为:删除本地最近一次变更记录,按当前服务端的分组信息数据更新分组数据,以及更新版本号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510343240.6A CN104980513B (zh) | 2015-06-19 | 2015-06-19 | 一种多客户端协同分组并发冲突及权限处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510343240.6A CN104980513B (zh) | 2015-06-19 | 2015-06-19 | 一种多客户端协同分组并发冲突及权限处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104980513A CN104980513A (zh) | 2015-10-14 |
CN104980513B true CN104980513B (zh) | 2019-02-26 |
Family
ID=54276606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510343240.6A Expired - Fee Related CN104980513B (zh) | 2015-06-19 | 2015-06-19 | 一种多客户端协同分组并发冲突及权限处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104980513B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830937B (zh) * | 2018-05-25 | 2023-08-08 | 如你所视(北京)科技有限公司 | 一种操作冲突的处理方法及服务器 |
CN109005217B (zh) * | 2018-07-05 | 2019-10-25 | 山东九州信泰信息科技股份有限公司 | 云计算环境下利用只读变量解决并发冲突的方法 |
CN110572360B (zh) * | 2019-08-02 | 2022-05-13 | 武大吉奥信息技术有限公司 | 一种gis空间数据协同编辑的方法 |
CN113050552A (zh) * | 2021-02-07 | 2021-06-29 | 成都中光睿华科技有限公司 | 基于单晶炉的集中控制系统及控制方法 |
CN113254459A (zh) * | 2021-07-07 | 2021-08-13 | 中邮消费金融有限公司 | 大用户量任务快速拆分处理方法、系统及计算机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2387011A1 (en) * | 2001-05-21 | 2002-11-21 | At&T Corp. | System for providing sequenced communications within a group |
CN1630277A (zh) * | 2003-12-18 | 2005-06-22 | 腾讯科技(深圳)有限公司 | 即时通讯系统及实现公用好友分组的方法 |
CN1991727A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯用户主面板好友分组的排列定制方法 |
CN101326787A (zh) * | 2005-12-08 | 2008-12-17 | 国际商业机器公司 | 在组合服务递送系统中管理并发数据更新 |
CN102394867A (zh) * | 2011-10-10 | 2012-03-28 | 深圳市金槌拍卖行有限公司 | 网络并发通讯请求转串行队列技术 |
CN103544189A (zh) * | 2012-07-17 | 2014-01-29 | 珠海金山办公软件有限公司 | 锁定正在编辑文件的方法及系统 |
-
2015
- 2015-06-19 CN CN201510343240.6A patent/CN104980513B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2387011A1 (en) * | 2001-05-21 | 2002-11-21 | At&T Corp. | System for providing sequenced communications within a group |
CN1630277A (zh) * | 2003-12-18 | 2005-06-22 | 腾讯科技(深圳)有限公司 | 即时通讯系统及实现公用好友分组的方法 |
CN101326787A (zh) * | 2005-12-08 | 2008-12-17 | 国际商业机器公司 | 在组合服务递送系统中管理并发数据更新 |
CN1991727A (zh) * | 2005-12-28 | 2007-07-04 | 腾讯科技(深圳)有限公司 | 一种即时通讯用户主面板好友分组的排列定制方法 |
CN102394867A (zh) * | 2011-10-10 | 2012-03-28 | 深圳市金槌拍卖行有限公司 | 网络并发通讯请求转串行队列技术 |
CN103544189A (zh) * | 2012-07-17 | 2014-01-29 | 珠海金山办公软件有限公司 | 锁定正在编辑文件的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104980513A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104980513B (zh) | 一种多客户端协同分组并发冲突及权限处理方法 | |
US8023934B2 (en) | Synchronizing communications and data between mobile devices and servers | |
US9432455B2 (en) | Synchronizing events between mobile devices and servers | |
CN103858122B (zh) | 保持客户端/服务器系统内的分布式复制内容的高度一致性的方法和系统 | |
CA2413615C (en) | Conflict resolution for collaborative work system | |
CN102902669B (zh) | 基于互联网系统的分布式信息抓取方法 | |
CN104346458B (zh) | 数据存储方法和存储设备 | |
CN108920116A (zh) | 投屏设备的控制方法、装置、设备及存储介质 | |
US11641312B2 (en) | Consolidating manufacturing intelligence event queue items | |
CN101676890B (zh) | 一种动态调整带宽分配的总线仲裁方法及仲裁器 | |
CN103544189A (zh) | 锁定正在编辑文件的方法及系统 | |
CN105005499B (zh) | 多客户端协同分组及显示方法 | |
CN109743137A (zh) | 一种支持更新的分布式延迟消息队列处理系统 | |
CN106095911A (zh) | 搜索系统及数据同步方法 | |
CN106095959A (zh) | 一种数据采集方法、装置及系统 | |
CN107357681A (zh) | 基于salt的Zookeeper备份管理系统及方法 | |
CN103701653B (zh) | 一种接口热插拔配置数据的处理方法及网络配置服务器 | |
CN114127690A (zh) | 用于协作的合并树 | |
CN110445828A (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN106339154B (zh) | 一种列表页面更新方法和装置 | |
CN104935663B (zh) | 一种多客户端协同分组数据同步处理方法 | |
CN106446300A (zh) | 一种基于共享存储池的事务处理方法及系统 | |
CN103077174B (zh) | 一种并发的资源更新方法与设备 | |
CN107784416A (zh) | 一种任务传递型处理方法 | |
CN104022896B (zh) | 一种配置管理方法、装置及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190226 Termination date: 20210619 |