Nothing Special   »   [go: up one dir, main page]

CN113209635B - 基于缓存队列的数据处理方法、装置及存储介质 - Google Patents

基于缓存队列的数据处理方法、装置及存储介质 Download PDF

Info

Publication number
CN113209635B
CN113209635B CN202110513532.5A CN202110513532A CN113209635B CN 113209635 B CN113209635 B CN 113209635B CN 202110513532 A CN202110513532 A CN 202110513532A CN 113209635 B CN113209635 B CN 113209635B
Authority
CN
China
Prior art keywords
target
offline
data
user
event
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
Application number
CN202110513532.5A
Other languages
English (en)
Other versions
CN113209635A (zh
Inventor
谢亚晋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shanghai Co Ltd
Original Assignee
Tencent Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shanghai Co Ltd filed Critical Tencent Technology Shanghai Co Ltd
Priority to CN202110513532.5A priority Critical patent/CN113209635B/zh
Publication of CN113209635A publication Critical patent/CN113209635A/zh
Application granted granted Critical
Publication of CN113209635B publication Critical patent/CN113209635B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/556Player lists, e.g. online players, buddy list, black list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种属于云技术领域下属的数据库同步的基于缓存队列的数据处理方法、装置及存储介质,该方法包括:当检测到目标应用的离线事件交互数据时存储离线事件交互数据,其中所述目标应用为多个用户交互的应用,且任一用户的离线数据为任一用户离线时目标应用中其他用户针对任一用户发起离线事件所产生的操作数据。当检测到目标应用的目标用户登录所述目标应用时,从存储的离线事件交互数据中确定出目标用户对应的目标离线数据;基于目标离线数据和目标用户在目标应用中的历史用户数据,响应目标离线数据对应的目标离线事件以生成目标用户的在线用户数据。采用本申请,可以提高目标应用的用户体验感及可靠性,适用性高,且操作简单。

Description

基于缓存队列的数据处理方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于缓存队列的数据处理方法、装置及存储介质。
背景技术
网络游戏也称在线游戏,一般指多名玩家通过计算机互联网进行交互娱乐的电子游戏。大型多人在线角色扮演游戏(MassiveMultiplayer Online Role-Playing Game,MMORPG)是电子角色扮演游戏按电子游戏人数分类分别出来的一种网络游戏,玩家可扮演一个或多个虚拟角色,并控制该角色在游戏中虚拟世界的活动与行为。在大型多人在线角色扮演游戏中存在大量离线事件,比如删除离线好友、帮派踢出离线成员、给离线成员发邮件等。由于服务器内存有限且玩家数量巨大,因此服务器内存通常只会加载在线玩家的相关数据,所以当上述大量离线事件发生时服务器无法直接修改离线玩家数据。
本申请的发明人在研究和实践过程中发现,现有技术通常是在发生离线事件后将离线玩家数据从数据库(DataBase,DB)中加载进内存,对内存中的数据进行处理后再更新至数据库。这种方法相当于直接修改了离线玩家的数据,忽略了特权玩家的用户体验。且由于离线事件的种类繁多,若每次离线事件都访问数据库进行数据修改,则会影响其他在线事件的数据库访问性能,用户体验感低,适用性低,可靠性差。
发明内容
本申请实施例提供了一种基于缓存队列的数据处理方法、装置及存储介质,可以提高目标应用的可靠性,增强目标应用的用户粘性,操作简单,适用性高。
本申请实施例第一方面提供一种基于缓存队列的数据处理方法,包括:
当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,其中,任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据;
当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据;
基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。
结合第一方面,在一种可能的实施方式中,上述存储上述离线事件交互数据包括:
将上述离线事件交互数据存储至缓存队列;
上述从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据包括:
从上述缓存队列中存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第一方面,在一种可能的实施方式中,上述存储上述离线事件交互数据存储至缓存队列之前,上述方法还包括:
从应用服务器的共享内存中确定出部分共享内存,并将上述部分共享内存确定为上述缓存队列。
结合第一方面,在一种可能的实施方式中,上述将上述离线事件交互数据存储至缓存队列之后,上述方法还包括:
当数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库;
上述从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据包括:
基于上述目标用户登录上述目标应用的时间和上述数据更新周期到来的时间,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第一方面,在一种可能的实施方式中,上述将上述离线事件交互数据存储至缓存队列之后,上述方法还包括:
当上述缓存队列存储空间已满时,将上述缓存队列中存入时间最早的离线事件交互数据读出并存储至目标数据库;
上述从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据包括:
从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第一方面,在一种可能的实施方式中,上述将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,上述方法还包括:
将上述离线事件交互数据从上述缓存队列中删除;或者
将上述离线事件交互数据标记为已存储数据。
结合第一方面,在一种可能的实施方式中,上述基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件之前,上述方法还包括:
向上述目标用户发送离线事件处理请求;
当接收到上述目标用户发送的上述离线事件处理响应时,基于上述目标离线数据确定上述目标离线数据对应的上述目标离线事件的事件处理逻辑,以基于上述事件处理逻辑、上述目标离线数据以及上述目标用户在上述目标应用中的历史用户数据执行上述目标离线事件以响应上述目标离线事件;
其中,上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。
结合第一方面,在一种可能的实施方式中,上述基于上述事件处理逻辑、上述目标离线数据以及上述目标用户在上述目标应用中的历史用户数据执行上述目标离线事件,包括:
基于上述事件处理逻辑和上述目标离线数据调用上述目标应用的在线事件逻辑接口,以通过上述在线事件逻辑接口修改上述目标应用中的上述目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口。
第二方面,本申请提供了一种基于缓存队列的数据处理装置,上述装置包括:
第一存储模块,用于当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,其中,任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据;
第一确定模块,用于当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据;
第一响应模块,用于基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。
结合第二方面,在一种可能的实施方式中,上述第一存储模块还用于:
将上述离线事件交互数据存储至缓存队列;
上述第一确定模块还用于:
从上述缓存队列中存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第二方面,在一种可能的实施方式中,上述装置还包括:
第二确定模块,用于从应用服务器的共享内存中确定出部分共享内存,并将上述部分共享内存确定为上述缓存队列。
结合第二方面,在一种可能的实施方式中,上述装置还包括:
第二存储模块,用于当数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库;
上述第一确定模块还用于:
基于上述目标用户登录上述目标应用的时间和上述数据更新周期到来的时间,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第二方面,在一种可能的实施方式中,上述第二存储模块还用于:
当上述缓存队列存储空间已满时,将上述缓存队列中存入时间最早的离线事件交互数据读出并存储至目标数据库;
上述第一确定模块还用于:
从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
结合第二方面,在一种可能的实施方式中,上述装置还包括:
删除模块,用于将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,将上述离线事件交互数据从上述缓存队列中删除;
标记模块,用于将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,将上述离线事件交互数据标记为已存储数据。
结合第二方面,在一种可能的实施方式中,上述装置还包括:
发送模块,用于向上述目标用户发送离线事件处理请求;
第三确定模块,用于当接收到上述目标用户发送的上述离线事件处理响应时,基于上述目标离线数据确定上述目标离线数据对应的上述目标离线事件的事件处理逻辑;
上述第一响应模块还用于:
基于上述事件处理逻辑、上述目标离线数据以及上述目标用户在上述目标应用中的历史用户数据执行上述目标离线事件以响应上述目标离线事件;
其中,上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。
结合第二方面,在一种可能的实施方式中,上述第一响应模块还包括:
调用单元,用于基于上述事件处理逻辑和上述目标离线数据调用上述目标应用的在线事件逻辑接口;
生成单元,用于通过上述在线事件逻辑接口修改上述目标应用中的上述目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口。
第三方面,本申请提供了一种计算机设备,包括:处理器、收发器、存储器以及网络接口;上述处理器与存储器、收发器以及网络接口相连,其中,网络接口用于提供数据通信功能,上述存储器用于存储程序代码,上述处理器和上述收发器用于调用上述程序代码,以执行本申请中上述第一方面以及第一方面中任一种可能的实施方式所执行的方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时,执行本申请中上述第一方面以及第一方面中任一种可能的实施方式所执行的方法。
在本申请中,当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述离线事件交互数据为上述目标应用的用户的离线数据,且任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据。当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据,在目标用户登录上述目标应用后再对存储的离线事件交互数据做相应的处理,提升了目标用户的用户体验感。确定出上述目标用户对应的目标离线数据后,基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,其中,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。采用本申请,可以缓解在离线事件种类繁多的情况下,每发生一次离线事件都访问数据库进行数据修改,影响其他在线事件的数据库访问性能的问题,且提升了目标应用的用户体验感,操作简单,适用性高。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的网络架构示意图;
图2是本申请实施例提供的基于缓存队列的数据处理方法的场景示意图;
图3是本申请实施例提供的基于缓存队列的数据处理方法的一流程示意图;
图4是本申请实施例提供的离线事件处理方法的一交互示意图;
图5是本申请实施例提供的离线事件处理方法的另一交互示意图;
图6是本申请实施例提供的引入请求队列后的离线事件处理方法的交互示意图;
图7是本申请实施例提供的基于缓存队列的数据处理方法的另一流程示意图;
图8是本申请实施例提供的基于缓存队列的数据处理方法的交互示意图;
图9是本申请实施例提供的离线事件处理的另一交互示意图;
图10是本申请实施例提供的基于缓存队列的数据处理装置的一结构示意图;
图11是本申请实施例提供的基于缓存队列的数据处理装置的另一结构示意图;
图12是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的基于缓存队列的数据处理方法属于计算机技术领域下属的云技术(Cloud Technology,CT)。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现大数据的计算、储存、处理和共享的一种托管技术。可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。其中,大数据(Big Data,BD)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
请参见图1,图1是本申请实施例提供的一种网络构架图。如图1所示,该网络架构图可以包括业务服务器100以及用户终端集群,该用户终端集群可以包括用户终端10a、用户终端10b、…、用户终端10n,其中,用户终端集群之间可以存在通信连接,例如用户终端10a与用户终端10b之间存在通信连接,用户终端10b与用户终端10n之间存在通信连接,且用户终端集群中的任一用户终端可以与业务服务器100存在通信连接,例如用户终端10a与业务服务器100之间存在通信连接,用户终端10b与业务服务器100之间存在通信连接。
其中,上述用户终端集群(也包括上述的用户终端10a、用户终端10b以及用户终端10n)均可以集成安装有目标应用。可选的,该目标应用可以包括具有展示文字、图像以及视频等数据信息功能的用户交互应用。例如,该目标应用可以为社交应用,可以用于任一用户离线时上述社交应用中其他用户针对任一用户发起离线操作(如踢出聊天群组),当检测到上述社交应用中目标用户处于登录状态时,响应其他用户针对上述目标用户发起的离线操作(如踢出聊天群组),并在上述用户终端(如用户终端10b)的显示界面显示出响应上述离线操作后上述目标用户对应的账号信息(如目标用户不属于该聊天群组的信息)。或者该目标应用也可以为大型多人在线角色扮演游戏应用,可以用于任一用户离线时上述游戏应用中其他用户针对任一用户发起离线操作(如将目标用户移除游戏好友),当检测到上述游戏应用中目标用户处于登录状态时,响应其他用户针对上述目标用户发起的离线操作(如将目标用户移除游戏好友),并在上述用户终端(如用户终端10b)的显示界面显示出响应上述离线操作后上述目标用户对应的账号信息(如某玩家不属于目标用户游戏好友的信息)。本申请中的业务服务器100可以收集到这些应用中的离线事件交互数据,这里的离线事件交互数据为目标应用中用户的离线数据(即任一用户离线时其他用户针对上述任一用户发起离线事件所产生的操作数据)。当业务服务器100检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,并在检测到上述目标应用中目标用户登录上述目标应用时,从存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。随后业务服务器100基于上述目标离线数据以及上述目标用户在上述目标应用中的历史数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,并将上述目标用户的在线用户数据对应的账号信息返回至用户终端。可选的,上述用户终端可以为在上述图1所对应实施例的用户终端集群中所选取的任意一个用户终端,比如,该用户终端可以为上述用户终端10b,则用户可以在用户终端10b的显示页面上查看到响应上述目标离线事件后对应的账号信息。
可以理解的是,本申请实施例所提供的方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器,本申请实施例中的业务服务器100可以为计算机设备,用户终端集群中的用户终端也可以为计算机设备,此处不限定。上述业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、台式计算机、智能手表等智能终端,但并不局限于此。其中,用户终端以及业务服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
请参见图2,图2是本申请实施例提供的基于缓存队列的数据处理方法的场景示意图。如图2所示,当业务服务器100检测到目标应用(如大型多人在线角色扮演游戏应用)时中的离线事件交互数据时,首先存储上述离线事件交互数据,其中,上述离线事件交互数据为目标应用(如大型多人在线角色扮演游戏应用)的用户的离线数据,其中,任一用户的离线数据为任一用户离线时上述目标应用中其他用户针对任一用户发起离线事件(如踢出帮派)所产生的操作数据。当业务服务器100检测到上述目标应用(如大型多人在线角色扮演游戏应用)的目标用户(如用户A)登录上述目标应用时,从存储的离线事件交互数据中确定出上述目标用户(如用户A)对应的目标离线数据。然后业务服务器100基于上述目标离线数据以及目标用户(如用户A)在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件(如踢出帮派)以生成上述目标用户的在线用户数据,其中,上述目标离线事件(如踢出帮派)为目标用户(如用户A)离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。并将上述目标用户的在线用户数据对应的更新后的账号信息返回至用户终端,则用户A可以在用户终端10b的显示页面20上查看到响应上述目标离线事件后更新的账号信息。如显示页面20所示,当玩家名称为“闻人夜思”的用户A上线后,可以看到当响应上述目标离线事件(如踢出帮派)后该玩家的帮派职称已变为“临时帮众”。
进一步地,为便于理解,请参见图3,图3是本申请实施例提供的基于缓存队列的数据处理方法的一流程示意图。该方法可以由用户终端(例如,上述图1或图2所示的用户终端)执行,也可以由用户终端和业务服务器(如上述图1或图2所对应实施例中的业务服务器100)共同执行。为便于理解,本实施例以该方法由上述用户终端执行为例进行说明。其中,该基于缓存队列的数据处理方法至少可以包括以下步骤S101-步骤S104:
S101,当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据。
在一些可行的实施方式中,当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,且任一用户的离线数据为任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据。可以理解,当上述目标应用为大型多人在线角色扮演游戏应用时,其对应的离线事件可以为删除离线好友、帮派踢出成员、给离线成员发邮件等事件。当发生上述离线事件时被操作的目标用户不在线,而由于用户数量庞大且业务服务器内存有限,业务服务器无法将全部用户数据加载进内存,因此不在线的用户通常是不会保存在业务服务器内存,而只是将在线用户的相关数据加载进业务服务器内存。所以发生上述离线事件时,业务服务器无法直接修改用户历史数据。如果需要对离线用户的用户历史数据进行更改,可将离线用户的用户历史数据从数据库(Database,DB)中加载进业务服务器内存,对业务服务器内存中的用户历史数据进行处理后,再更新至数据库。数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。请参见图4,图4是本申请实施例提供的离线事件处理方法的一交互示意图。如图4所示,目标数据库中存储有用户A的用户历史数据、用户B的用户历史数据、用户C的用户历史数据等,当发生离线事件时,业务服务器会向目标数据库请求目标用户的用户历史数据,以基于上述离线事件对应的离线交互数据对目标用户的用户历史数据进行修改。当修改后的用户A的用户历史数据更新至目标数据库后,业务服务器内存则会删除从目标数据库加载的用户A的用户历史数据以释放内存。例如当发生的离线事件为用户A被踢出帮派时,业务服务器内存向目标数据库请求用户A的用户历史数据,随后目标数据库则将用户A的用户历史数据加载进业务服务器内存中。业务服务器则调用离线事件逻辑响应上述离线事件,修改用户A的用户历史数据以更新用户A的用户历史数据,并向目标数据库发送更新后的用户A的用户历史数据。当数据更新成功后,业务服务器内存则会删除用户A的用户历史数据以释放内存,以将内存提供给在线用户使用。然而在上述用户A的用户历史数据的修改过程中,发生离线事件后业务服务器内存会直接从目标数据库中加载用户A的用户历史数据进行数据修改,这是一种强制行为因此忽略了用户A的玩家体验。且在目前的用户交互应用中,各种数据处理逻辑复杂,存在着大量数据依赖,例如离线用户被踢出帮派需要通知周边系统(帮派聊天频道、帮派雕像等)进行数据更新,因此若直接修改数据库中的数据,也需要处理这些周边系统中的依赖数据,大量的依赖数据则容易造成数据遗漏导致应用产生漏洞。且在目前的用户交互应用中,玩家数量众多离线事件种类也随之增多,如果每发生一次离线事件都访问数据库进行数据修改,则会给数据库带来较大的数据压力,从而影响其他在线事件的数据库访问性能。请参见图5,图5是本申请实施例提供的离线事件处理方法的另一交互示意图。如图5所示,目标数据库中存储有用户A的用户历史数据、用户B的用户历史数据、用户C的用户历史数据等。当发生离线事件时,业务服务器内存需要将目标用户的用户历史数据加载进内存,以基于上述离线事件对应的离线交互数据对目标用户的用户历史数据进行修改,但业务服务器对上述目标用户的用户历史数据进行修改时,也需要对周边系统(如聊天频道、帮派频道以及帮派活跃等)复杂的依赖数据进行修改。可以理解,这里的依赖数据为目标用户的用户历史数据的其中一种表现形式。当离线事件过多,业务服务器获取数据库中的用户N的用户历史数据,并访问数据库以更新用户N的用户历史数据时,目标数据库可能会由于性能压力而导致更新失败,这时业务服务器只能定时重试以更新目标数据库中用户N的历史数据,适用性及可靠性不高。在本申请可选的实施例中,当业务服务器检测到离线事件交互数据时,先将上述离线事件交互数据存储起来,直到检测到目标用户为登录状态时再进行后续操作,不仅提高了用户的玩家体验感,还解决了数据库性能问题。
S102,当检测到目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一些可行的实施方式中,上述当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据可以为将上述离线事件交互数据存储至缓存队列。这里的缓存队列通过预分配指定内存空间来存取数据,在本申请可选的实施例中,所有的数据都保存在应用服务器内置的共享内存中,因此在将上述离线事件交互数据存储至上述缓存队列之前,可从应用服务器的共享内存中确定出部分共享内存,并将上述部分共享内存确定为上述缓存队列。其中,这里的应用服务器可以理解为,为上述目标应用提供数据计算、数据校验、数据存储和数据转发等服务的业务服务器。将上述离线事件交互数据存储在缓存队列,以通过在共享内存中缓存数据来减少读取数据库的次数,从而提高数据库的性能。为了提高队列的可靠性,在本申请可选的实施例中,上述缓存队列从应用服务器的共享内存中分配,这是因为共享内存在在应用服务器宕机之后不会自动清理,因此可以通过重启应用服务器的进程重新将共享内存与新进程关联起来,从而恢复缓存队列中的离线事件交互数据。这里的进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是操作系统动态执行的基本单元,在传统的操作系统中进程既是基本的分配单元也是基本的执行单元。在本申请可选的实施例中,为了解决数据库性能问题,还可以通过引入一个请求队列将需要处理的离线事件放在队列中,定时逐个处理队列中的离线事件,以减轻集中处理离线事件导致的数据库性能问题。请参见图6,图6是本申请实施例提供的引入请求队列后的离线事件处理方法的交互示意图。如图6所示,目标数据库中存储有用户A的用户历史数据、用户B的用户历史数据、用户C的用户历史数据等。请求队列中存储有各离线事件对应的数据修改事项,例如修改用户A的用户历史数据、修改用户B的用户历史数据等。当修改目标用户的用户历史数据时,还可以将目标用户的依赖数据进行一并修改,并将修改后的目标用户的用户历史数据更新至目标数据库,以防止数据丢失。当发生离线事件后,将各离线事件加入请求队列中进行逐个处理。当处理的离线事件对应为修改用户A的用户历史数据时,则请求队列从数据库加载用户A的用户历史数据,并基于发生的离线事件修改用户A的用户历史数据,其中包括修改用户A的依赖数据(如聊天频道、帮派雕像、帮派活跃等),将修改后的用户A的用户历史数据更新至数据库。在上述方案中,虽然解决了数据库压力过大导致的性能问题但请求队列的长度是有限的,但依然是在发生离线事件后直接修改用户历史数据,忽略了用户体验。且在这种方案中请求队列是从服务器内存中分配,一旦离线事件足够多,这种方案就需要大量的内存空间,若服务器宕机请求队列中的数据也将全部丢失。因此若在应用服务器的共享内存中确定一部分作为缓存队列,并将离线事件交互数据存储至缓存队列中,待检测到目标用户登录目标应用时,从上述缓存队列中存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据,既避免了发生离线事件后直接进行数据修改,又解决了队列存盘落地的问题。这是由于这里的共享内存是两个或多个正在运行的进程之间共享和传递数据的存储区,且由于共享内存在应用服务器的进程宕机后不会自动清理,因此将离线事件交互数据存储至缓存队列中,直到检测到目标用户为登录状态时再进行后续操作,不仅提高了用户的玩家体验感,还解决了数据库性能问题。
S103,基于上述目标离线数据和上述目标用户在所述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据。
在一些可行的实施方式中,基于上述目标离线数据和上述目标用户在所述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,其中,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。可选的,当检测到目标用户登录目标应用后,基于事件处理逻辑和上述目标离线数据调用目标应用的在线事件逻辑接口,以通过上述在线事件逻辑捷库修改上述目标应用中的目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口,且上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。在本申请可选的实施例中,当目标用户登录目标应用后,本身就需要将用户历史数据加载进内存,因此在用户历史数据加载进内存的时刻执行离线事件就可以复用用户在线时的事件处理逻辑,从而防止处理周边系统(如帮派聊天频道、帮派雕像等)中的依赖数据的时候有逻辑遗漏的情况,也避免了重复开发离线事件处理逻辑时数据逻辑遗漏而导致的数据不准确的问题。因为现有的在线事件处理逻辑能针对离线事件交互数据以及目标用户的用户历史数据进行更完善的逻辑处理,因此复用现有的在线事件处理逻辑安全可靠,同时不会遗漏依赖数据的处理逻辑。
在本申请中,当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述离线事件交互数据为上述目标应用的用户的离线数据,且任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据。当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据,在目标用户登录上述目标应用后再对存储的离线事件交互数据做相应的处理,提升了目标用户的用户体验感。确定出上述目标用户对应的目标离线数据后,基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,其中,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。采用本申请,可以缓解在离线事件种类繁多的情况下,每发生一次离线事件都访问数据库进行数据修改,影响其他在线事件的数据库访问性能的问题,且提升了目标应用的用户体验感,操作简单,适用性高。
在一些可行的实施方式中,请一并参见图7,图7是本申请实施例提供的基于缓存队列的数据处理方法的另一流程示意图。该方法可以由用户终端(例如,上述图1或图2所示的用户终端)执行,也可以由用户终端和业务服务器(如上述图1或图2所对应实施例中的业务服务器100)共同执行。为便于理解,本实施例以该方法由上述用户终端执行为例进行说明。其中,该基于缓存队列的数据处理方法至少可以包括以下步骤S201-步骤S205:
S201,当检测到目标应用的离线事件交互数据时,将上述离线事件交互数据存储至缓存队列。
在一些可行的实施方式中,当检测到目标应用的离线事件交互数据时,从应用服务器的共享内存中确定出部分共享内存,并将所述部分共享内存确定为所述缓存队列,并将上述离线事件交互数据存储至缓存队列,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,且任一用户的离线数据为任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据。在本申请可选的实施例中,上述存入缓存队列中的离线事件交互数据,这与上述图6中的请求队列中存储的离线事件对应的用户数据是有区别的,这两者的区别主要在内存占用方面,因为离线事件对应的用户数据通常在兆字节(MByte,MB)级别,而离线事件交互数据为任一用户离线时目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据(若离线事件为上述帮派踢人事件,则这里的操作数据可以为修改目标用户的帮派名称这个操作对应的相关数据),其通常在千字节(Kilobyte,KB)级别,两者之间相差1000个数量级。因此将上述离线事件交互数据存储至缓存队列也可以节约共享内存的空间,提高缓存队列的运行效率。
S202,当数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库。
在一些可行的实施方式中,为了解决缓存队列中的内存占用问题,可选的,可以将上述缓存队列中的离线事件交互数据定期存储至目标数据库,为其他离线事件交互数据腾出存储空间。因此在数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库,可以避免业务服务器宕机的情况下丢失离线事件交互数据。在本申请可选的实施例中,若上述数据更新周期时间还未到来,但上述缓存队列中的存储空间已满,则将上述缓存队列中存入时间最早的离线事件交互数据读出来存储至目标数据库,以为其他离线事件交互数据腾出存储空间。可选的,将缓存队列中的离线事件交互数据读出并存储至目标数据库之后,还可以将上述离线事件交互数据从上述缓存队列中删除,或者将上述离线事件交互数据标记为已存储数据。请参见图8,图8是本申请实施例提供的基于缓存队列的数据处理方法的交互示意图。如图8所示,目标数据库中存储有从缓存队列中更新的离线事件1交互数据、离线事件2交互数据以及离线事件3交互数据。缓存队列中存储有除离线事件1交互数据、离线事件2交互数据以及离线事件3交互数据以外的离线事件4交互数据以及离线事件5交互数据等。如图8所示,当检测到目标应用的离线事件交互数据时,将离线事件N交互数据存储至缓存队列,以逐个对缓存队列中的离线事件交互数据对应的离线事件进行处理,缓解了数据库压力。当数据更新周期到来时,将缓存队列中的离线事件1交互数据、离线事件2交互数据、离线事件3交互数据等逐个存储至目标数据库中,然后将缓存队列中的离线事件1交互数据、离线事件2交互数据、离线事件3交互数据删除,为其他离线事件交互数据腾出存储空间。
S203,当检测到所述目标应用的目标用户登录所述目标应用时,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一些可行的实施方式中,当检测到目标应用的目标用户登录上目标应用时,若上述目标用户对应的离线事件交互数据一部分在缓存队列中一部分已存储至目标数据库中,则从上述缓存队列和目标数据库中确定出上述目标用户对应的目标离线数据;若上述目标用户对应的离线事件交互数据已全部存储至目标数据库,则从目标数据库中确定出上述目标用户的目标离线数据;若上述目标用户对应的离线事件交互数据还为存储至目标数据库,则从缓存队列中确定出上述目标用户的目标离线数据。当目标用户登录上述目标应用时,会首先将目标数据库中存储的用户历史数据加载进内存,同时将确定出的上述目标用户的目标离线数据加载进内存以供后续操作。
S204,向上述目标用户发送离线事件处理请求。
在一些可行的实施方式中,当检测到目标用户登录上述目标应用后,向上述目标用户发送离线事件处理请求。可选的,若上述目标应用为大型多人在线角色扮演游戏应用上述目标用户为特权用户,且上述离线事件为帮派踢人事件时,向上述目标用户发送离线事件处理请求。可以理解,这里向目标用户发送离线事件处理请求可以为向特权用户发送是否同意退出帮派的请求。
S205,当接收到目标用户发送的所述离线事件处理响应时,基于目标离线数据和目标用户的历史用户数据,响应目标离线数据对应的目标离线事件以生成目标用户的在线用户数据。
在一些可行的实施方式中,接收到目标用户发送的所述离线事件处理响应时,基于目标离线数据和目标用户的历史用户数据,响应目标离线数据对应的目标离线事件以生成目标用户的在线用户数据。可选的,当接收到目标用户发送的离线事件处理响应时,若上述离线事件处理响应中携带事件同意信息(如同意退出帮派),则基于上述目标离线数据确定上述目标离线数据对应的目标离线事件的事件处理逻辑,并基于上述事件处理逻辑和上述目标离线数据调用目标应用的在线事件逻辑接口,以通过上述在线事件逻辑接口修改上述目标应用中的目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口,且上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。请参见图9,图9是本申请实施例提供的离线事件处理的另一交互示意图。如图9所示,目标数据库中存储有从缓存队列中更新的离线事件1交互数据、离线事件2交互数据以及离线事件3交互数据。业务服务器中加载有目标数据库中的目标用户的用户历史数据以及离线事件1交互数据、离线事件2交互数据以及离线事件3交互数据。当上述目标应用为大型多人在线角色扮演游戏应用时,上述周边系统可以包括帮派系统、奖励系统、邮件系统、活动系统、任务系统、家园系统等。当目标用户登录上述目标应用且接收到的目标用户发送的离线事件处理响应中携带事件同意信息,若上述目标用户对应的离线事件交互数据已全部存储至目标数据库,则从目标数据库中确定出上述目标用户的目标离线数据(如离线事件1交互数据、离线事件2交互数据、离线事件3交互数据),并将上述目标离线数据(如离线事件1交互数据、离线事件2交互数据、离线事件3交互数据)以及目标用户的历史用户数据加载进业务服务器内存中,然后基于上述目标离线数据以及基于目标离线数据确定的目标离线事件对应的事件处理逻辑调用上述目标应用的在线事件逻辑接口,以通过上述在线事件逻辑接口修改上述目标应用中的目标用户的历史用户数据,并生成目标用户的在线用户数据。可选的,如图9所示,若上述目标应用为大型多人在线角色扮演游戏应用,其应用中的周边系统涉及帮派系统、奖励系统、邮件系统、活动系统、任务系统、家园系统等,当目标用户登录上述大型多人在线角色扮演游戏应用后,还可以复用在线事件的逻辑接口对上述周边系统中涉及的依赖数据进行更改,使用户离线时被踢出帮派与用户在线时被踢出帮派的表现一致,不会有逻辑遗漏且进而保证了周边系统中的数据准确性。
在本申请中,当检测到目标应用的离线事件交互数据时,从应用服务器的共享内存中确定出部分共享内存,并将所述部分共享内存确定为所述缓存队列,并将上述离线事件交互数据存储至缓存队列,为了解决缓存队列中的内存占用问题,在数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库,为其他离线事件交互数据腾出存储空间。当检测到所述目标应用的目标用户登录所述目标应用时,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据,并向上述目标用户发送离线事件处理请求,当收到目标用户发送的所述离线事件处理响应时,基于目标离线数据和目标用户的历史用户数据,响应目标离线数据对应的目标离线事件以生成目标用户的在线用户数据。采用本申请,可以将离线事件交互数据存储至缓存队列中以缓解数据库压力,同时解决了直接修改数据库中的数据带来的用户体验不足的问题,还可以复用用户的在线事件逻辑接口,从而保证离线事件与在线事件表现一致,防止重复开发离线事件处理逻辑带来的数据遗漏问题,操作简单,适用性高。
进一步地,请参见图10,图10是本申请提供的基于缓存队列的数据处理装置的一结构示意图。该基于缓存队列的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该基于缓存队列的数据处理装置为一个应用软件;该装置可以用于执行本申请提供的方法中的相应步骤。如图10所示,该基于缓存队列的数据处理装置包括:第一存储模块10、第一确定20、第一响应模块30。
第一存储模块10,用于当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,其中,任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据;
第一确定模块20,用于当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据;
第一响应模块30,用于基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。
在一种可能的实施方式中,上述第一存储模块10还用于:
将上述离线事件交互数据存储至缓存队列;
上述第一确定模块20还用于:
从上述缓存队列中存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,请参见图11,图11是本申请实施例提供的基于缓存队列的数据处理装置的另一结构示意图。如图11所示,上述装置还包括:
第二确定模块40,用于从应用服务器的共享内存中确定出部分共享内存,并将上述部分共享内存确定为上述缓存队列。
在一种可能的实施方式中,上述装置还包括:
第二存储模块50,用于当数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库;
上述第一确定模块20还用于:
基于上述目标用户登录上述目标应用的时间和上述数据更新周期到来的时间,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,上述第二存储模块50还用于:
当上述缓存队列存储空间已满时,将上述缓存队列中存入时间最早的离线事件交互数据读出并存储至目标数据库;
上述第一确定模块20还用于:
从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,上述装置还包括:
删除模块60,用于将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,将上述离线事件交互数据从上述缓存队列中删除;
标记模块70,用于将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,将上述离线事件交互数据标记为已存储数据。
在一种可能的实施方式中,上述装置还包括:
发送模块80,用于向上述目标用户发送离线事件处理请求;
第三确定模块90,用于当接收到上述目标用户发送的上述离线事件处理响应时,基于上述目标离线数据确定上述目标离线数据对应的上述目标离线事件的事件处理逻辑;
上述第一响应30模块还用于:
基于上述事件处理逻辑、上述目标离线数据以及上述目标用户在上述目标应用中的历史用户数据执行上述目标离线事件以响应上述目标离线事件;
其中,上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。
在一种可能的实施方式中,上述第一响应模块30还包括:
调用单元301,用于基于上述事件处理逻辑和上述目标离线数据调用上述目标应用的在线事件逻辑接口;
生成单元302,用于通过上述在线事件逻辑接口修改上述目标应用中的上述目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口。
进一步的,请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备2000可以应用于服务器,该服务器可以为上述图1所对应实施例中的业务服务器100;该计算机设备2000可以应用于终端,该终端可以为上述图1所对应实施例中的用户终端10a、用户终端10b、…、用户终端10n;该计算机设备2000也可以为上述图3所对应实施例中的计算机设备。计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还包括:收发器2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图12所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图12所示的计算机设备2000中,网络接口2004可提供网络通讯功能;处理器2001和收发器2003可以用于调用存储器2005中存储的设备控制应用程序,以实现:
上述处理器2001,用于当检测到目标应用的离线事件交互数据时,存储上述离线事件交互数据,其中上述目标应用为多个用户交互的应用,上述离线事件交互数据为上述目标应用的用户的离线数据,其中,任一用户的离线数据为上述任一用户离线时上述目标应用中其他用户针对上述任一用户发起离线事件所产生的操作数据;
上述处理器2001,还用于当检测到上述目标应用的目标用户登录上述目标应用时,从存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据;
上述处理器2001,还用于基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件以生成上述目标用户的在线用户数据,上述目标离线事件为上述目标用户离线时上述目标应用中其他用户针对上述目标用户发起的离线事件。
在一种可能的实施方式中,上述处理器2001还用于:
将上述离线事件交互数据存储至缓存队列;
从上述缓存队列中存储的上述离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,上述存储上述离线事件交互数据存储至缓存队列之前,上述处理器2001还用于:
从应用服务器的共享内存中确定出部分共享内存,并将上述部分共享内存确定为上述缓存队列。
在一种可能的实施方式中,上述将上述离线事件交互数据存储至缓存队列之后,上述处理器2001还用于:
当数据更新周期到来时,将上述离线事件交互数据从缓存队列中读出并存储至目标数据库;
基于上述目标用户登录上述目标应用的时间和上述数据更新周期到来的时间,从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,上述将上述离线事件交互数据存储至缓存队列之后,上述处理器2001还用于:
当上述缓存队列存储空间已满时,将上述缓存队列中存入时间最早的离线事件交互数据读出并存储至目标数据库;
从上述缓存队列和/或上述目标数据库存储的离线事件交互数据中确定出上述目标用户对应的目标离线数据。
在一种可能的实施方式中,上述将上述离线事件交互数据从缓存队列读出并存储至目标数据库之后,上述处理器2001还用于:
将上述离线事件交互数据从上述缓存队列中删除;或者
将上述离线事件交互数据标记为已存储数据。
在一种可能的实施方式中,上述基于上述目标离线数据和上述目标用户在上述目标应用中的历史用户数据,响应上述目标离线数据对应的目标离线事件之前,上述收发器2003用于:
向上述目标用户发送离线事件处理请求;
当上述收发器2003接收到目标用户发送的上述离线事件处理响应时,上述处理器2001还用于,基于上述目标离线数据确定上述目标离线数据对应的上述目标离线事件的事件处理逻辑,以基于上述事件处理逻辑、上述目标离线数据以及上述目标用户在上述目标应用中的历史用户数据执行上述目标离线事件以响应上述目标离线事件;
其中,上述在线用户数据为上述目标用户登录上述目标应用后响应上述目标离线事件后产生的用户数据。
在一种可能的实施方式中,上述处理器2001还用于:
基于上述事件处理逻辑和上述目标离线数据调用上述目标应用的在线事件逻辑接口,以通过上述在线事件逻辑接口修改上述目标应用中的上述目标用户的历史用户数据以生成上述目标用户的在线用户数据,其中,上述在线事件逻辑接口为上述目标应用中在线事件的处理逻辑接口。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的一种基于通路融合的图像识别装置所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3和/或图7所对应实施例中对该基于通路融合的图像识别方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述计算机可读存储介质可以是前述任一实施例提供的一种功率变换器的控制装置或者上述设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其它程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的实施例中,所揭露的电路和方法,还可以通过其它的方式实现。例如,以上所描述的装置实施例是示意性的,例如,电路模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (9)

1.一种基于缓存队列的数据处理方法,其特征在于,应用于业务服务器,所述方法包括:
当检测到目标应用的离线事件交互数据时,将所述离线事件交互数据存储至缓存队列,其中所述目标应用为多个用户交互的应用,所述离线事件交互数据为所述目标应用的用户的离线数据,其中,任一用户的离线数据为所述任一用户离线时所述目标应用中其他用户针对所述任一用户发起离线事件所产生的操作数据;
当检测到所述目标应用的目标用户登录所述目标应用时,从存储的所述离线事件交互数据中确定出所述目标用户对应的目标离线数据;
基于所述目标离线数据确定所述目标离线数据对应的目标离线事件的事件处理逻辑,所述目标离线事件为所述目标用户离线时所述目标应用中其他用户针对所述目标用户发起的离线事件;
基于所述事件处理逻辑和所述目标离线数据调用所述目标应用的在线事件逻辑接口,以通过所述在线事件逻辑接口修改所述目标应用中的所述目标用户的历史用户数据以生成所述目标用户的在线用户数据,其中,所述在线用户数据为所述目标用户登录所述目标应用后响应所述目标离线事件后产生的用户数据。
2.根据权利要求1所述的方法,其特征在于,所述从存储的所述离线事件交互数据中确定出所述目标用户对应的目标离线数据包括:
从所述缓存队列中存储的所述离线事件交互数据中确定出所述目标用户对应的目标离线数据。
3.根据权利要求1所述的方法,其特征在于,所述将所述离线事件交互数据存储至缓存队列之前,所述方法还包括:
从应用服务器的共享内存中确定出部分共享内存,并将所述部分共享内存确定为所述缓存队列。
4.根据权利要求1所述的方法,其特征在于,所述将所述离线事件交互数据存储至缓存队列之后,所述方法还包括:
当数据更新周期到来时,将所述离线事件交互数据从缓存队列中读出并存储至目标数据库;
所述从存储的所述离线事件交互数据中确定出所述目标用户对应的目标离线数据包括:
基于所述目标用户登录所述目标应用的时间和所述数据更新周期到来的时间,从所述缓存队列和/或所述目标数据库存储的离线事件交互数据中确定出所述目标用户对应的目标离线数据。
5.根据权利要求4所述的方法,其特征在于,所述将所述离线事件交互数据存储至缓存队列之后,所述方法还包括:
当所述缓存队列存储空间已满时,将所述缓存队列中存入时间最早的离线事件交互数据读出并存储至目标数据库;
所述从存储的所述离线事件交互数据中确定出所述目标用户对应的目标离线数据包括:
从所述缓存队列和/或所述目标数据库存储的离线事件交互数据中确定出所述目标用户对应的目标离线数据。
6.根据权利要求4所述的方法,其特征在于,所述将所述离线事件交互数据从缓存队列读出并存储至目标数据库之后,所述方法还包括:
将所述离线事件交互数据从所述缓存队列中删除;或者
将所述离线事件交互数据标记为已存储数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述基于所述目标离线数据确定所述目标离线数据对应的目标离线事件的事件处理逻辑之前,所述方法还包括:
向所述目标用户发送离线事件处理请求;
当接收到所述目标用户发送的所述离线事件处理响应时,执行所述基于所述目标离线数据确定所述目标离线数据对应的所述目标离线事件的事件处理逻辑。
8.一种计算机设备,其特征在于,包括:处理器、收发器、存储器以及网络接口;
所述处理器与存储器、收发器以及网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述收发器和所述处理器用于调用所述程序代码,执行权利要求1-7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-7任一项所述的方法。
CN202110513532.5A 2021-05-11 2021-05-11 基于缓存队列的数据处理方法、装置及存储介质 Active CN113209635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110513532.5A CN113209635B (zh) 2021-05-11 2021-05-11 基于缓存队列的数据处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110513532.5A CN113209635B (zh) 2021-05-11 2021-05-11 基于缓存队列的数据处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113209635A CN113209635A (zh) 2021-08-06
CN113209635B true CN113209635B (zh) 2024-04-19

Family

ID=77095123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110513532.5A Active CN113209635B (zh) 2021-05-11 2021-05-11 基于缓存队列的数据处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113209635B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001104649A (ja) * 1999-08-04 2001-04-17 Sega Corp ゲームシステムにおけるデータ通信方法
CN101887485A (zh) * 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种在棋牌游戏中实现稳妥的掉线重连的方法
CN102194036A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种同步游戏好友信息的方法、装置和系统
CN102790763A (zh) * 2012-06-15 2012-11-21 北京天空堂科技有限公司 一种网络游戏客户端
CN104065637A (zh) * 2013-07-10 2014-09-24 腾讯科技(深圳)有限公司 网页游戏运行的方法及装置
CN104135506A (zh) * 2014-06-25 2014-11-05 深圳市盛讯达科技股份有限公司 网络数据负载均衡设计系统及方法
CN104346514A (zh) * 2013-08-09 2015-02-11 聚游互动(北京)科技发展有限公司 支持在线游戏应用离线运行的方法及系统
CN109173270A (zh) * 2018-09-06 2019-01-11 网易(杭州)网络有限公司 一种游戏服务系统和实现方法
CN111773735A (zh) * 2020-07-22 2020-10-16 网易(杭州)网络有限公司 游戏组队方法及装置、计算机可读存储介质、电子设备
CN112642146A (zh) * 2020-12-25 2021-04-13 珠海金山网络游戏科技有限公司 一种数据处理方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001104649A (ja) * 1999-08-04 2001-04-17 Sega Corp ゲームシステムにおけるデータ通信方法
CN101887485A (zh) * 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种在棋牌游戏中实现稳妥的掉线重连的方法
CN102194036A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种同步游戏好友信息的方法、装置和系统
CN102790763A (zh) * 2012-06-15 2012-11-21 北京天空堂科技有限公司 一种网络游戏客户端
CN104065637A (zh) * 2013-07-10 2014-09-24 腾讯科技(深圳)有限公司 网页游戏运行的方法及装置
CN104346514A (zh) * 2013-08-09 2015-02-11 聚游互动(北京)科技发展有限公司 支持在线游戏应用离线运行的方法及系统
CN104135506A (zh) * 2014-06-25 2014-11-05 深圳市盛讯达科技股份有限公司 网络数据负载均衡设计系统及方法
CN109173270A (zh) * 2018-09-06 2019-01-11 网易(杭州)网络有限公司 一种游戏服务系统和实现方法
CN111773735A (zh) * 2020-07-22 2020-10-16 网易(杭州)网络有限公司 游戏组队方法及装置、计算机可读存储介质、电子设备
CN112642146A (zh) * 2020-12-25 2021-04-13 珠海金山网络游戏科技有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN113209635A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
CN104065637B (zh) 网页游戏运行的方法及装置
CN112910880B (zh) 虚拟房间创建方法、系统、装置、设备及介质
CN111586164B (zh) 远程云桌面的分享、接替、信息处理方法及电子设备
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
CN113467958B (zh) 一种数据处理方法、装置、设备以及可读存储介质
CN104133825A (zh) 一种匹配客户端用户的方法及装置
CN111259019A (zh) 资源配置方法、装置、设备和存储介质
CN111130986B (zh) 消息发送方法、装置、设备及存储介质
CN112295234B (zh) 获取游戏道具的方法和装置
CN113209635B (zh) 基于缓存队列的数据处理方法、装置及存储介质
CN111586438B (zh) 一种业务数据的处理方法、装置及系统
CN111800491A (zh) 一种数据传输方法、系统、计算设备及存储介质
CN111957052A (zh) 任务组队方法、装置、电子设备及存储介质
CN113704024B (zh) 数据处理方法、装置、相关设备及存储介质
CN111327511B (zh) 即时通讯方法、系统、终端设备与存储介质
CN115373831A (zh) 数据处理方法、装置以及计算机可读存储介质
CN114697694B (zh) 互动处理方法和系统
CN111494955A (zh) 基于游戏的角色互动方法、装置、服务器及介质
CN113018852B (zh) 一种数据处理方法及数据处理装置
CN114090237B (zh) 终端数据业务管控方法、装置、电子设备及存储介质
CN116764239A (zh) 游戏匹配时间的预测方法、装置、设备及存储介质
CN114168630A (zh) 数据处理方法及装置、电子设备、存储介质
CN118860562A (zh) 虚拟机创建请求处理方法、装置、设备以及存储介质
CN115640061A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN114189489A (zh) 一种消息推送方法、装置、服务器和介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40052748

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant