虚拟物品状态管理方法、装置、存储介质及电子设备与流程

文档序号:32660064发布日期:2022-12-23 23:11阅读:27来源:国知局
虚拟物品状态管理方法、装置、存储介质及电子设备与流程

1.本技术实施例涉及计算机技术领域,尤其涉及虚拟物品状态管理方法、装置、存储介质及电子设备。


背景技术:

2.随着网络世界的不断发展,虚拟物品的流通管理变得越来越重要,虚拟物品的管理平台可以根据用户的行为表现为用户进行虚拟物品的发放。为了满足用户的多时间维度下的虚拟物品获取需求,虚拟物品管理平台可以支持多时间维度下的虚拟物品发放功能,但是多时间维度也导致了虚拟物品管理难度显著上升,并且也导致了虚拟物品少发、多发等问题,使得相关技术中虚拟物品管理准确度降低。


技术实现要素:

3.为了解决上述至少一个技术问题,本技术实施例提供虚拟物品状态管理方法、装置、存储介质及电子设备。
4.一方面,本技术实施例提供了一种虚拟物品状态管理方法,所述方法包括:
5.在接收到针对第一记录的状态变更请求的情况下,确定所述第一记录的目标时段信息,所述第一记录为用于记录目标对象在目标时间段内关联的虚拟物品的数量信息的管理记录;
6.在所述目标时段信息表征第一类时段的情况下,基于加锁交互机制对所述第一记录进行状态变更,所述第一类时段为生成管理记录的最小时间段;
7.在所述目标时段信息表征第二类时段的情况下,查询所述第一记录关联的全部第二记录,每一所述第二记录对应的时间段位于所述目标时间段,并且每一所述第二记录对应的时段信息为所述第一类时段,所述第二类时段包括多个所述第一类时段;
8.在所述第一记录并未关联任何第二记录的情况下,基于加锁交互机制对所述第一记录进行状态变更。
9.在一个实施例中,所述方法还包括:
10.在所述第一记录关联的全部第二记录均位于第一状态的情况下,基于加锁交互机制对所述第一记录进行状态变更;
11.所述第一状态表征其对应的第二记录中关联的虚拟物品已经被发送至所述目标对象。
12.在一个实施例中,所述方法还包括:
13.在存在目标第二记录的情况下,提示所述针对第一记录的状态变更请求的响应失败;
14.显示针对所述目标第二记录的状态变更提醒,所述状态变更提醒用于提示通过执行相关操作将所述目标第二记录的状态变更为所述第一状态,或者,删除所述目标第二记录;
15.其中,所述目标第二记录为不处于所述第一状态的第二记录。
16.在一个实施例中,所述状态变更请求为预览请求,所述预览请求用于将所述第一记录变更至第二状态,所述在接收到针对第一记录的状态变更请求的情况下,确定所述第一记录的目标时段信息之前,还包括:
17.获取行为表现信息,所述行为表现信息为所述目标对象在所述目标时间段的、与虚拟物品相关的行为对应的表现信息;
18.根据第一标识、第二标识和所述行为表现信息,生成第一记录,所述第一标识为所述目标对象对应的虚拟物品提供者的标识,所述第二标识为所述目标对象对应的虚拟物品管理者的标识;
19.根据所述第一记录生成所述预览请求;
20.或,
21.所述状态变更请求为入库请求,所述入库请求用于将所述第一记录变更至第三状态,所述在接收到针对第一记录的状态变更请求的情况下,确定所述第一记录的目标时段信息之前,还包括:
22.获取行为表现信息,所述行为表现信息为所述目标对象在所述目标时间段的、与虚拟物品相关的行为对应的表现信息;
23.根据第一标识、第二标识和所述行为表现信息,生成第一记录,所述第一标识为所述目标对象对应的虚拟物品提供者的标识,所述第二标识为所述目标对象对应的虚拟物品管理者的标识;
24.根据所述第一记录生成所述入库请求。
25.在一个实施例中,所述根据第一标识、第二标识和所述行为表现信息,生成第一记录,包括:
26.根据所述第一标识、所述第二标识、第三标识和所述行为表现信息,生成所述第一记录,所述第三标识为所述目标对象的身份标识。
27.在一个实施例中,所述基于加锁交互机制对所述第一记录进行状态变更,包括:
28.查询第三记录,所述第三记录为与所述第一记录具备相同主键并且具备相同目标时间段的记录;
29.在未查询到所述第三记录的情况下,进行状态变更处理;
30.在查询到所述第三记录的情况下,查询所述第三记录对应的锁记录,所述锁记录用于阻止除去所述锁记录的接管线程之外的其他线程对与所述第三记录具备相同主键的记录进行处理;
31.在存在锁记录并且所述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理。
32.在一个实施例中,所述方法还包括:
33.在存在锁记录并且所述锁记录对应的加锁时长小于或者等于所述预设阈值的情况下,提示所述针对第一记录的状态变更请求的响应失败。
34.在一个实施例中,所述在未查询到所述第三记录的情况下,进行状态变更处理,包括:
35.生成与所述第一记录对应的第三记录,并且在第三记录的基础上生成锁记录;
36.在所述锁记录生成完毕的情况下,将所述第三记录进行状态变更;
37.在所述状态变更成功的情况下,删除所述锁记录。
38.在一个实施例中,所述在存在锁记录并且所述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理,包括:
39.对所述锁记录进行接管,并且对所述锁记录的加锁时间进行重置;
40.在所述锁记录生成完毕的情况下,将所述第三记录进行状态变更;
41.在所述状态变更成功的情况下,删除所述锁记录。
42.另一方面,本技术实施例提供一种虚拟物品状态管理装置,所述装置包括:
43.状态变更请求模块,用于在接收到针对第一记录的状态变更请求的情况下,确定所述第一记录的目标时段信息,所述第一记录为用于记录目标对象在目标时间段内关联的虚拟物品的数量信息的管理记录;
44.状态变更响应模块,用于执行下述操作:
45.在所述目标时段信息表征第一类时段的情况下,基于加锁交互机制对所述第一记录进行状态变更,所述第一类时段为生成管理记录的最小时间段;
46.在所述目标时段信息表征第二类时段的情况下,查询所述第一记录关联的全部第二记录,每一所述第二记录对应的时间段位于所述目标时间段,并且每一所述第二记录对应的时段信息为所述第一类时段,所述第二类时段包括多个所述第一类时段;
47.在所述第一记录并未关联任何第二记录的情况下,基于加锁交互机制对所述第一记录进行状态变更。
48.在一个实施例中,状态变更响应模块,用于执行下述操作:
49.在所述第一记录关联的全部第二记录均位于第一状态的情况下,基于加锁交互机制对所述第一记录进行状态变更;
50.所述第一状态表征其对应的第二记录中关联的虚拟物品已经被发送至所述目标对象。
51.在一个实施例中状态变更响应模块,用于执行下述操作:
52.在存在目标第二记录的情况下,提示所述针对第一记录的状态变更请求的响应失败;
53.显示针对所述目标第二记录的状态变更提醒,所述状态变更提醒用于提示通过执行相关操作将所述目标第二记录的状态变更为所述第一状态,或者,删除所述目标第二记录;
54.其中,所述目标第二记录为不处于所述第一状态的第二记录。
55.在一个实施例中,状态变更请求模块,用于执行下述操作:获取行为表现信息,所述行为表现信息为所述目标对象在所述目标时间段的、与虚拟物品相关的行为对应的表现信息;
56.根据第一标识、第二标识和所述行为表现信息,生成第一记录,所述第一标识为所述目标对象对应的虚拟物品提供者的标识,所述第二标识为所述目标对象对应的虚拟物品管理者的标识;
57.根据所述第一记录生成所述预览请求;
58.或,
59.所述状态变更请求为入库请求,所述入库请求用于将所述第一记录变更至第三状态,所述在接收到针对第一记录的状态变更请求的情况下,确定所述第一记录的目标时段信息之前,还包括:
60.获取行为表现信息,所述行为表现信息为所述目标对象在所述目标时间段的、与虚拟物品相关的行为对应的表现信息;
61.根据第一标识、第二标识和所述行为表现信息,生成第一记录,所述第一标识为所述目标对象对应的虚拟物品提供者的标识,所述第二标识为所述目标对象对应的虚拟物品管理者的标识;
62.根据所述第一记录生成所述入库请求。
63.在一个实施例中,所述根据第一标识、第二标识和所述行为表现信息,生成第一记录,包括:
64.根据所述第一标识、所述第二标识、第三标识和所述行为表现信息,生成所述第一记录,所述第三标识为所述目标对象的身份标识。
65.在一个实施例中,状态变更响应模块,用于执行下述操作:查询第三记录,所述第三记录为与所述第一记录具备相同主键并且具备相同目标时间段的记录;
66.在未查询到所述第三记录的情况下,进行状态变更处理;
67.在查询到所述第三记录的情况下,查询所述第三记录对应的锁记录,所述锁记录用于阻止除去所述锁记录的接管线程之外的其他线程对与所述第三记录具备相同主键的记录进行处理;
68.在存在锁记录并且所述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理。
69.在一个实施例中,状态变更响应模块,用于执行下述操作:在存在锁记录并且所述锁记录对应的加锁时长小于或者等于所述预设阈值的情况下,提示所述针对第一记录的状态变更请求的响应失败。
70.在一个实施例中,所述在未查询到所述第三记录的情况下,进行状态变更处理,包括:
71.生成与所述第一记录对应的第三记录,并且在第三记录的基础上生成锁记录;
72.在所述锁记录生成完毕的情况下,将所述第三记录进行状态变更;
73.在所述状态变更成功的情况下,删除所述锁记录。
74.在一个实施例中,状态变更响应模块,用于执行下述操作:对所述锁记录进行接管,并且对所述锁记录的加锁时间进行重置;
75.在所述锁记录生成完毕的情况下,将所述第三记录进行状态变更;
76.在所述状态变更成功的情况下,删除所述锁记录。
77.另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现上述的一种虚拟物品状态管理方法。
78.另一方面,本技术实施例提供了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的一种虚拟物品
状态管理方法。
79.另一方面,本技术实施例提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述的一种虚拟物品状态管理方法。
80.本技术实施例提供一种虚拟物品状态管理方法,只有在充分考虑到确保不会导致多发的情况下,才对第一记录进行状态变更。本技术实施例中第一记录的状态变更与虚拟物品发放是直接相关的,因此,本技术实施例中状态管理方法通过对第一记录的状态变更进行严谨管理的方式确保不出现虚拟物品多发。并且,本技术实施例从非最小时段下的虚拟物品发放环节规避多发问题,而对于最小时间段下的虚拟物品发放不进行限定,最小时段下的物品发放可以直接进行,这一方案既降低了状态管理对于最小时段下的物品发放环节的影响,又保证了各个时段下都可以进行虚拟物品发放并且最终不出现多发的技术效果。
附图说明
81.为了更清楚地说明本技术实施例或相关技术中的技术方案和优点,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
82.图1是本说明书实施例提供的一种虚拟物品状态管理方法的流程示意图;
83.图2是本说明书实施例提供的基于加锁交互机制对第一记录进行状态变更方法流程示意图;
84.图3是本技术实施例提供的虚拟物品状态管理装置的框图;
85.图4是本技术实施例提供的一种用于实现本技术实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
86.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术实施例保护的范围。
87.需要说明的是,本技术实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术实施例的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
88.为了使本技术实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术实施例,并不用于限定本技术实施例。
89.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
90.本技术实施例提供了一种虚拟物品状态管理方法,该虚拟物品状态管理方法应用于虚拟物品管理端,对于虚拟物品管理端的应用场景,本技术实施例进行下述介绍。
91.虚拟物品管理端作为一个中间管理平台,可以与用户所持有的电子设备(包括登录用户账户的客户端)以及任务发布平台分别进行通信,从而将任务发布平台的功能解耦,使得任务发布平台无需进行虚拟物品的管理。
92.本技术实施例并不限定任务发布平台,其可以被认为是任一接入上述虚拟物品管理端的任务发布平台,也可以被认为是任意订购上述虚拟物品管理端的虚拟物品管理服务的任务发布平台。比如,任务发布平台可以为游戏程序的服务器,该服务器可以向用户发布游戏任务,但是用户可以通过本技术实施例中的虚拟物品管理端获得游戏任务中的虚拟物品奖励,而该服务器可以将游戏任务中的虚拟物品奖励有关的管理功能解耦。再比如,任务发布平台可以为直播程序的服务器,该服务器可以向用户发布直播任务,但是用户可以通过本技术实施例中的虚拟物品管理端获得直播任务中的虚拟物品奖励,而该服务器可以将直播任务中的虚拟物品奖励有关的管理功能解耦。本技术实施例并不限定接入的任务发布平台的类型与数量。
93.本技术实施例中的目标对象可以被理解为在任一上述任务发布平台执行任务的用户所对应的虚拟对象,该目标对象通过执行任务理应得到任务发布平台所发布的虚拟物品作为奖励,但是,本技术实施例中的虚拟物品可以由虚拟物品管理端代发,也就是说,任务发布平台可以通过签订服务协议的方式交由虚拟物品管理端来进行代发。
94.需要注意的是,本技术实施例中虚拟物品管理端可以为目标对象提供不同时间维度的代发服务,比如,可以根据该目标对象在任务发布平台的行为表现按周或者按月进行虚拟物品的代发服务,从而支持多时间维度下的虚拟物品发放,满足用户的多时间维度的虚拟物品获取需求,比如,该虚拟物品管理端可以按周为用户发放一部分的虚拟物品,并且同时也按月为该用户发放另一部分的虚拟物品,从而满足用户多时间维度下的虚拟物品获取需求。
95.但是,多时间维度下的虚拟物品获取需求的满足带来了虚拟物品管理上的困难,也就是说,这一功能带来了虚拟物品管理记录的状态管理上的困难。如果不能精准管理虚拟物品管理记录的状态,可能会导致虚拟物品的多发。
96.举个例子,基于某对象a在8月7日至8月13日的行为表现信息,为其在对应的“周”发放价值500虚拟币的虚拟物品,当然,虚拟物品管理端对应存在一条记录,即为记录1,假设此时记录1的状态为状态1,表征该记录1中的虚拟物品已经被发放。
97.在当月按月发放虚拟物品时,综合该对象a在8月的行为表现信息,应当为其发放价值5000虚拟币的虚拟物品,当然,虚拟物品管理端对应存在一条记录,即为记录2,假设此时记录2的状态为状态2,表征记录2中的虚拟物品尚未发放。
98.基于记录1和记录2及其各自的状态来确定8月应当发放的虚拟物品时,正常情况下应当发放5000-500=4500的虚拟物品。但是,在由于记录1和记录2生成的先后顺序不唯
一、记录1和记录2各自的状态的变更先后顺序也无法提前预设,这就导致基于记录1和记录2及其各自的状态所确定出的最终按月发放的虚拟物品的总量可能不准确,从而产生多发问题。
99.比如,假设首先生成记录1,但是由于价值500虚拟币的虚拟物品还没发放,导致记录1的状态并不是状态1,这情况下再得到记录2,则可能记录1中要求的虚拟物品和记录2中要求的虚拟物品都会被发放,即发放了5000+500=5500的虚拟物品,造成多发。
100.为了解决多时间维度下的虚拟物品获取功能所带来的虚拟物品管理记录的状态管理上的困难,确保虚拟物品不出现多发,实现虚拟物品的准确流通,本技术实施例提供一种虚拟物品状态管理方法。
101.根据前文提及的应用场景,在该场景下,图1示出了本技术实施例提供的一种虚拟物品状态管理方法的流程示意图,该方法同样运行于虚拟物品管理端。本技术实施例提供了如实施例或流程图上述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统、终端设备或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境),上述方法可以包括:
102.s101.在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息,上述第一记录为用于记录目标对象在目标时间段内关联的虚拟物品的数量信息的管理记录。
103.本技术实施例中上述状态变更请求可以为预览请求或者入库请求。预览请求下可以为客户端提供针对管理记录的预览功能。入库请求可以为客户端提供针对管理记录的预览以及入库的功能。本技术实施例中只有被录入数据库并且被设定为第一状态的管理记录中的虚拟物品才可以被发放至其对应的对象。
104.本技术实施例中将预览请求实施后的管理记录的状态称之为第二状态,第二状态下管理记录未被录入数据库。本技术实施例中将入库请求实施后的管理记录的状态称之为第三状态,第三状态下管理记录已经被录入数据库但是尚未生效,这是第三状态与第一状态的区别。
105.对于第一记录而言,如果接收到针对第一记录的预览请求,客户端可以通过访问虚拟物品管理端查看到与该第一记录有关的内容,但是该第一记录中的内容尚未录入上述虚拟物品管理端的数据库,即该第一记录可以被置为第二状态。如果接收到针对第一记录的入库请求,客户端可以通过访问虚拟物品管理端查看到与该第一记录有关的内容,并且将该第一记录中的内容录入上述虚拟物品管理端的数据库,即该第一记录可以被置为第三状态。
106.以上述状态变更请求为预览请求为例,上述在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息之前,还包括:
107.s201.获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息。
108.比如,目标对象通过在任务发布平台1执行游戏任务领取虚拟物品,则该行为表现信息指目标对象在目标时间段的游戏任务执行情况。目标对象通过在任务发布平台2执行
媒体资源编辑任务领取虚拟物品,则该行为表现信息指目标对象在目标时间段的媒体资源编辑任务的执行情况。
109.s202.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识。
110.该第一标识可以为该任务发布平台1或任务发布平台2的标识,第二标识可以为属于虚拟物品管理端的管理员的标识,该虚拟物品管理端可以配置多个管理员,每个管理员用于管理多个用户在各个任务发布平台的任务执行情况,以及为该多个用户在该虚拟物品管理端进行对应的管理记录的管理。这种情况下生成的第一记录的主键就是“第一标识and第二标识”。
111.s203.根据上述第一记录生成上述预览请求。
112.以上述状态变更请求为入库请求为例,上述入库请求用于将上述第一记录变更至第三状态,上述在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息之前,还包括:
113.s301.获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息。
114.s302.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识。
115.s303.根据上述第一记录生成上述入库请求。
116.入库请求的生成方式与预览请求相似,本技术实施例不再赘述。入库请求和预览请求都可以由虚拟物品管理端的管理员触发生成,并传输至虚拟物品管理端。在一个具体的实施例中,根据第一标识、第二标识和上述行为表现信息,生成第一记录,可以具体包括:根据上述第一标识、上述第二标识、第三标识和上述行为表现信息,生成上述第一记录,上述第三标识为上述目标对象的身份标识。这种情况下生成的第一记录的主键就是“第一标识and第二标识and第三标识”。主键的设置相较于前文粒度更细,可以实现更为精细化的管理记录的状态管理。
117.本技术实施例支持多时间维度下的管理记录的状态转换,举个例子,可以支持周维度和月维度,如果目标时段信息表征周维度,则该第一记录就是记录了一个周内虚拟物品的数量信息;如果目标时段信息表征月维度,则该第一记录就是记录了一个月内虚拟物品的数量信息。
118.s102.在上述目标时段信息表征第一类时段的情况下,基于加锁交互机制对上述第一记录进行状态变更,上述第一类时段为生成管理记录的最小时间段。
119.本技术实施例中第一类时段就是生成管理记录的最小时间段。以虚拟物品管理端可以支持周维度和月维度为例,第一类时段就是“周”。对于这种时段相关的第一记录,可以直接基于加锁交互机制对上述第一记录进行状态变更,因为,本技术实施例从非最小时段下的虚拟物品发放环节规避多发问题,而对于最小时间段下的虚拟物品发放不进行限定,最小时段下的物品发放可以直接进行,这一方案既降低了状态管理对于最小时段下的物品发放环节的影响,又保证了各个时段下都可以进行虚拟物品发放并且最终不出现多发的技
术效果。
120.s103.在上述目标时段信息表征第二类时段的情况下,查询上述第一记录关联的全部第二记录,每一上述第二记录对应的时间段位于上述目标时间段,并且每一上述第二记录对应的时段信息为上述第一类时段,上述第二类时段包括多个上述第一类时段。
121.第二类时段显然是非最小时间段,以虚拟物品管理端可以支持周维度和月维度为例,第二类时段就是“月”。首先,可以查询出该月中的各“周”有关的记录,即上述全部第二记录。
122.s104.在上述第一记录并未关联任何第二记录的情况下,基于加锁交互机制对上述第一记录进行状态变更。
123.如果上述第一记录并未关联任何第二记录,说明该月并没有按周结付虚拟物品,那么也就不会出现因为按周结付虚拟物品导致的多发,可以直接基于该第一记录按月维度发放虚拟物品,而不出现多发。
124.本技术实施例中上述的基于加锁交互机制对上述第一记录进行状态变更,可以认为是在充分考虑到确保不会导致多发的情况下,才对第一记录进行状态变更,因为本技术实施例中第一记录的状态变更与虚拟物品发放是直接相关的,因此,本技术实施例中状态管理方法通过对第一记录的状态变更进行严谨管理的方式确保不出现虚拟物品多发。
125.在一个实施例中,在上述第一记录关联的全部第二记录均位于第一状态的情况下,基于加锁交互机制对上述第一记录进行状态变更;上述第一状态表征其对应的第二记录中关联的虚拟物品已经被发送至上述目标对象。
126.也就是说,如果该月存在可能需要按周发虚拟物品的情况,即存在第二记录,如果这些第二记录都是位于第一状态,也就是说,这些第二记录中的虚拟物品都被按周维度结付掉了,则在按月结付虚拟物品的时候,只需要将这些提前结付的虚拟物品扣除即可,不会产生多发,这种情况下也可以基于加锁交互机制对上述第一记录进行状态变更。
127.在一个实施例中,在存在目标第二记录的情况下,提示上述针对第一记录的状态变更请求的响应失败;显示针对上述目标第二记录的状态变更提醒,上述状态变更提醒用于提示通过执行相关操作将上述目标第二记录的状态变更为上述第一状态,或者,删除上述目标第二记录;其中,上述目标第二记录为不处于上述第一状态的第二记录。
128.如果存在并非位于第一状态的第二记录(目标第二记录),就表示准备按周维度发放目标第二记录中的虚拟物品,但是这一动作还没有实施,那么就有可能在按月发放虚拟物品之后,该目标第二记录中的虚拟物品再一次被结付,从而造成了多发,这种情况下,本技术实施例直接不允许进行第一记录的状态变更,提示上述针对第一记录的状态变更请求的响应失败。第一记录只有位于第一状态才会触发第一记录中虚拟物品的发放,阻止第一记录的状态变更就阻止了第一记录中虚拟物品的发放,从而避免多发的产生,只有对于目标第二记录妥善处理之后才能再次进行第一记录的状态变更,确保不会出现多发。
129.本技术实施例中为了确保对第一记录的操作唯一性,需要基于加锁交互机制对上述第一记录进行状态变更,比如,当两个管理员先后触发针对该第一记录的状态变更请求,如果不进行加锁交互处理,可能导致两个管理员的触发操作互相影响,后一个管理员看到的第一记录不是自己上传的管理记录,而是前一个管理员上传的管理记录,引起预览或者入库的混乱。为了这一场景下确保预览和入库不出现混乱,如图2所示,本技术实施例执行
下述操作:
130.s401.查询第三记录,上述第三记录为与上述第一记录具备相同主键并且具备相同目标时间段的记录。
131.s402.在未查询到上述第三记录的情况下,进行状态变更处理。
132.如果不存在第三记录,说明之前没有管理员上传过针对该目标对象、该目标时间段的记录,也就是说,第一记录为全新记录,这种情况下可以直接触发状态变更。具体来说,可以生成上述第一记录,并且在上述第一记录的基础上生成锁记录;在上述锁记录生成完毕的情况下,将上述第一记录的状态变更至上述第二状态或第三状态;在上述状态变更成功的情况下,删除上述锁记录。具体来说,如果是预览请求,就变更至第二状态,如果是入库请求,就变更至第三状态,当然,还需要执行入库操作,入库操作不是本技术重点,不做赘述。
133.s403.在查询到上述第三记录的情况下,查询上述第三记录对应的锁记录,上述锁记录用于阻止除去上述锁记录的接管线程之外的其他线程对与上述第三记录具备相同主键的记录进行处理。
134.如果存在第三记录,则说明该第一记录不是全新记录,已经有其他管理员针对该目标对象和该目标时间段进行过上传,这种情况下需要查询该第三记录的对应的锁记录的状态。本技术实施例中加的锁为一种请求排他锁,或者说线程排他锁,目的在于阻止除去上述锁记录的接管线程之外的其他线程对与上述第三记录具备相同主键的记录进行处理。第一记录与第三记录具备相同主键,则除了当前正在接管第三记录对应的锁记录的线程外,其他线程无法操作第一记录和第三记录,当前线程并不是第三记录对应的锁记录的接管线程,自然也无法对第一记录进行状态变更。也就是说,如果该锁记录有效,则可能会阻止当前线程即将进行的状态变更处理操作。
135.s404.在存在锁记录并且上述锁记录对应的加锁时长小于或者等于上述预设阈值的情况下,提示上述针对第一记录的状态变更请求的响应失败。
136.这种情况下锁是有效的,那么当前线程即将进行的状态变更处理操作被阻止,响应失败,成功避免了可能造成的预览或者入库混乱。
137.s405.在存在锁记录并且上述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理。
138.这种情况下,虽然锁存在,但是锁存在的时间过长,通常状态转换不可能耗时很久,正常情况下锁很快会被释放,加锁时间过长很可能是出现了服务重启、网络波动、程序缺陷等异常情况,这种情况下加锁的线程很可能已经失效,不会造成预览或者入库混乱,这种情况当前线程依然可以进行状态变更处理。这一处理方式避免了异常情况导致的长期锁现象,确保了状态变更的正常执行。
139.这种情况下,可以对上述锁记录进行接管,并且对上述锁记录的加锁时间进行重置;在上述锁记录生成完毕的情况下,在上述第三记录的基础上生成上述第一记录,将上述第一记录的状态变更至上述第二状态或第三状态;在上述状态变更成功的情况下,删除上述锁记录。
140.请参考图3,其示出本实施例中一种虚拟物品状态管理装置的框图,上述装置包括:
141.状态变更请求模块301,用于在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息,上述第一记录为用于记录目标对象在目标时间段内关联的虚拟物品的数量信息的管理记录;
142.状态变更响应模块302,用于执行下述操作:
143.在上述目标时段信息表征第一类时段的情况下,基于加锁交互机制对上述第一记录进行状态变更,上述第一类时段为生成管理记录的最小时间段;
144.在上述目标时段信息表征第二类时段的情况下,查询上述第一记录关联的全部第二记录,每一上述第二记录对应的时间段位于上述目标时间段,并且每一上述第二记录对应的时段信息为上述第一类时段,上述第二类时段包括多个上述第一类时段;
145.在上述第一记录并未关联任何第二记录的情况下,基于加锁交互机制对上述第一记录进行状态变更。
146.在一个实施例中,状态变更响应模块,用于执行下述操作:
147.在上述第一记录关联的全部第二记录均位于第一状态的情况下,基于加锁交互机制对上述第一记录进行状态变更;
148.上述第一状态表征其对应的第二记录中关联的虚拟物品已经被发送至上述目标对象。
149.在一个实施例中状态变更响应模块,用于执行下述操作:
150.在存在目标第二记录的情况下,提示上述针对第一记录的状态变更请求的响应失败;
151.显示针对上述目标第二记录的状态变更提醒,上述状态变更提醒用于提示通过执行相关操作将上述目标第二记录的状态变更为上述第一状态,或者,删除上述目标第二记录;
152.其中,上述目标第二记录为不处于上述第一状态的第二记录。
153.在一个实施例中,状态变更请求模块,用于执行下述操作:获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息;
154.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识;
155.根据上述第一记录生成上述预览请求;
156.或,
157.上述状态变更请求为入库请求,上述入库请求用于将上述第一记录变更至第三状态,上述在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息之前,还包括:
158.获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息;
159.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识;
160.根据上述第一记录生成上述入库请求。
161.在一个实施例中,上述根据第一标识、第二标识和上述行为表现信息,生成第一记录,包括:
162.根据上述第一标识、上述第二标识、第三标识和上述行为表现信息,生成上述第一记录,上述第三标识为上述目标对象的身份标识。
163.在一个实施例中,状态变更响应模块,用于执行下述操作:查询第三记录,上述第三记录为与上述第一记录具备相同主键并且具备相同目标时间段的记录;
164.在未查询到上述第三记录的情况下,进行状态变更处理;
165.在查询到上述第三记录的情况下,查询上述第三记录对应的锁记录,上述锁记录用于阻止除去上述锁记录的接管线程之外的其他线程对与上述第三记录具备相同主键的记录进行处理;
166.在存在锁记录并且上述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理。
167.在一个实施例中,状态变更响应模块,用于执行下述操作:在存在锁记录并且上述锁记录对应的加锁时长小于或者等于上述预设阈值的情况下,提示上述针对第一记录的状态变更请求的响应失败。
168.在一个实施例中,上述在未查询到上述第三记录的情况下,进行状态变更处理,包括:
169.生成与上述第一记录对应的第三记录,并且在第三记录的基础上生成锁记录;
170.在上述锁记录生成完毕的情况下,将上述第三记录进行状态变更;
171.在上述状态变更成功的情况下,删除上述锁记录。
172.在一个实施例中,状态变更响应模块,用于执行下述操作:对上述锁记录进行接管,并且对上述锁记录的加锁时间进行重置;
173.在上述锁记录生成完毕的情况下,将上述第三记录进行状态变更;
174.在上述状态变更成功的情况下,删除上述锁记录。
175.装置实施例与方法实施例基于相同发明构思,不做赘述。
176.另一方面,本技术实施例提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有至少一条指令或至少一段程序,上述至少一条指令或至少一段程序由处理器加载并执行以实现上述的一种虚拟物品状态管理方法。
177.本技术实施例中装置部分与方法实施例基于相同发明构思,在此不做赘述。
178.进一步地,图4示出了一种用于实现本技术实施例所提供的方法的设备的硬件结构示意图,上述设备可以参与构成或包含本技术实施例所提供的装置或系统。如图4所示,设备10可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
179.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分地体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
180.存储器104可用于存储应用软件的软件程序以及模块,如本技术实施例中上述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种虚拟物品状态管理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
181.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
182.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
183.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本技术实施例特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
184.本技术实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
185.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
186.上述存储介质中的指令可以执行一种虚拟物品状态管理方法,上述方法包括:
187.在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息,上述第一记录为用于记录目标对象在目标时间段内关联的虚拟物品的数量信息的管理记录;
188.在上述目标时段信息表征第一类时段的情况下,基于加锁交互机制对上述第一记录进行状态变更,上述第一类时段为生成管理记录的最小时间段;
189.在上述目标时段信息表征第二类时段的情况下,查询上述第一记录关联的全部第
二记录,每一上述第二记录对应的时间段位于上述目标时间段,并且每一上述第二记录对应的时段信息为上述第一类时段,上述第二类时段包括多个上述第一类时段;
190.在上述第一记录并未关联任何第二记录的情况下,基于加锁交互机制对上述第一记录进行状态变更。
191.在一个实施例中,上述方法还包括:
192.在上述第一记录关联的全部第二记录均位于第一状态的情况下,基于加锁交互机制对上述第一记录进行状态变更;
193.上述第一状态表征其对应的第二记录中关联的虚拟物品已经被发送至上述目标对象。
194.在一个实施例中,上述方法还包括:
195.在存在目标第二记录的情况下,提示上述针对第一记录的状态变更请求的响应失败;
196.显示针对上述目标第二记录的状态变更提醒,上述状态变更提醒用于提示通过执行相关操作将上述目标第二记录的状态变更为上述第一状态,或者,删除上述目标第二记录;
197.其中,上述目标第二记录为不处于上述第一状态的第二记录。
198.在一个实施例中,上述状态变更请求为预览请求,上述预览请求用于将上述第一记录变更至第二状态,上述在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息之前,还包括:
199.获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息;
200.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识;
201.根据上述第一记录生成上述预览请求;
202.或,
203.上述状态变更请求为入库请求,上述入库请求用于将上述第一记录变更至第三状态,上述在接收到针对第一记录的状态变更请求的情况下,确定上述第一记录的目标时段信息之前,还包括:
204.获取行为表现信息,上述行为表现信息为上述目标对象在上述目标时间段的、与虚拟物品相关的行为对应的表现信息;
205.根据第一标识、第二标识和上述行为表现信息,生成第一记录,上述第一标识为上述目标对象对应的虚拟物品提供者的标识,上述第二标识为上述目标对象对应的虚拟物品管理者的标识;
206.根据上述第一记录生成上述入库请求。
207.在一个实施例中,上述根据第一标识、第二标识和上述行为表现信息,生成第一记录,包括:
208.根据上述第一标识、上述第二标识、第三标识和上述行为表现信息,生成上述第一记录,上述第三标识为上述目标对象的身份标识。
209.在一个实施例中,上述基于加锁交互机制对上述第一记录进行状态变更,包括:
210.查询第三记录,上述第三记录为与上述第一记录具备相同主键并且具备相同目标时间段的记录;
211.在未查询到上述第三记录的情况下,进行状态变更处理;
212.在查询到上述第三记录的情况下,查询上述第三记录对应的锁记录,上述锁记录用于阻止除去上述锁记录的接管线程之外的其他线程对与上述第三记录具备相同主键的记录进行处理;
213.在存在锁记录并且上述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理。
214.在一个实施例中,上述方法还包括:
215.在存在锁记录并且上述锁记录对应的加锁时长小于或者等于上述预设阈值的情况下,提示上述针对第一记录的状态变更请求的响应失败。
216.在一个实施例中,上述在未查询到上述第三记录的情况下,进行状态变更处理,包括:
217.生成与上述第一记录对应的第三记录,并且在第三记录的基础上生成锁记录;
218.在上述锁记录生成完毕的情况下,将上述第三记录进行状态变更;
219.在上述状态变更成功的情况下,删除上述锁记录。
220.在一个实施例中,上述在存在锁记录并且上述锁记录对应的加锁时长大于预设阈值的情况下,进行状态变更处理,包括:
221.对上述锁记录进行接管,并且对上述锁记录的加锁时间进行重置;
222.在上述锁记录生成完毕的情况下,将上述第三记录进行状态变更;
223.在上述状态变更成功的情况下,删除上述锁记录。
224.以上仅为本技术实施例的较佳实施例,并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1