CN113238860A - 一种任务请求处理方法、装置、电子设备及存储介质 - Google Patents

一种任务请求处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113238860A
CN113238860A CN202110489336.9A CN202110489336A CN113238860A CN 113238860 A CN113238860 A CN 113238860A CN 202110489336 A CN202110489336 A CN 202110489336A CN 113238860 A CN113238860 A CN 113238860A
Authority
CN
China
Prior art keywords
target
task
account
task execution
ordered set
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.)
Granted
Application number
CN202110489336.9A
Other languages
English (en)
Other versions
CN113238860B (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110489336.9A priority Critical patent/CN113238860B/zh
Publication of CN113238860A publication Critical patent/CN113238860A/zh
Application granted granted Critical
Publication of CN113238860B publication Critical patent/CN113238860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本公开关于一种任务请求处理方法、装置、电子设备及存储介质,该方法包括:接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。本公开提高了高并发情况下对于任务执行请求对应的任务执行结果判定的准确性。

Description

一种任务请求处理方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务请求处理方法、装置、电子设备及存储介质。
背景技术
随着计算机技术的快速发展,用户终端中的应用程序越来越多,一些应用程序为了促进与用户的互动常常推出一些基于任务的执行,向用户分发资源的资源分发活动。相关技术中,在任务发起方发起获取资源分发活动中资源的目标任务后,可以由不同于该任务发起方的任务执行方请求执行该目标任务,服务端会响应于任务执行方的任务执行请求来判定该次任务执行的任务执行结果。由于服务端通常会涉及到多个处理服务器来处理任务执行请求,且每个处理服务器会开启多个线程进行并发处理,当针对同一个目标任务的多个任务执行请求被分配到不同处理服务器的不同线程中处理时,无法准确判定该多个任务执行请求的先后顺序,从而导致高并发情况下对于任务执行请求对应的任务执行结果判定的不准确。
发明内容
本公开提供一种任务请求处理方法、装置、电子设备及存储介质,以至少解决相关技术中对于任务执行结果判定不准确的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种任务请求处理方法,包括:
接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;
将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;
根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;
根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
在一个示例性的实施方式中,所述根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果,包括:
判断所述任务执行进度是否达到所述目标任务对应的预设任务执行进度;
在判断的结果为否时,确定所述第一账号针对所述目标任务的任务执行结果为执行成功。
在一个示例性的实施方式中,所述方法还包括:
若所述任务执行进度达到所述目标任务对应的预设任务执行进度,则获取所述目标有序集合中排序在前的目标数量个账号;所述目标数量与所述预设任务进度相匹配;
判断所述目标数量个账号中是否包括所述第一账号;
若所述目标数量个账号中包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行成功;
若所述目标数量个账号中不包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行失败。
在一个示例性的实施方式中,所述将所述第一账号存入所述第二账号对应的目标有序集合中,包括:
根据所述任务执行请求生成写入指令;所述写入指令指示将所述第一账号存入所述第二账号对应的目标有序集合中;
通过目标请求处理线程对应的数据管道将所述写入指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程。
在一个示例性的实施方式中,所述根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度,包括:
根据所述任务执行请求生成查询指令;所述查询指令指示查询所述目标有序集合中账号的总数量;
通过所述目标请求处理线程对应的数据管道将所述查询指令发送至所述内存数据库;
获取所述内存数据库执行所述查询指令返回的结果,得到所述目标任务的任务执行进度。
在一个示例性的实施方式中,所述获取所述目标有序集合中排序在前的目标数量个账号,包括:
生成截取指令和账号提取指令;所述截取指令指示将所述目标有序集合中排序在前的所述目标数量个账号作为截取对象进行截取;所述账号提取指令指示提取所述截取对象中的账号;
通过目标请求处理线程对应的数据管道将所述截取指令和账号提取指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程;
获取所述内存数据库执行所述截取指令和账号提取指令返回的结果,得到所述目标有序集合中排序在前的所述目标数量个账号。
在一个示例性的实施方式中,所述方法还包括:
若所述任务执行结果为执行失败,则生成任务执行提示消息;所述任务执行提示消息指示所述目标任务的任务执行进度已达到所述预设任务执行进度;
向所述第一账号对应的终端以及所述第二账号对应的终端分别发送所述任务执行提示消息。
根据本公开实施例的第二方面,提供一种任务请求处理装置,包括:
任务执行请求接收单元,被配置为执行接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;
账号存储单元,被配置为执行将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;
任务执行进度确定单元,被配置为执行根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;
任务执行结果确定单元,被配置为执行根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
在一个示例性的实施方式中,所述任务执行结果确定单元包括:
第一判断单元,被配置为执行判断所述任务执行进度是否达到所述目标任务对应的预设任务执行进度;
第一任务执行结果确定子单元,被配置为执行在所述第一判断单元判断的结果为否时,确定所述第一账号针对所述目标任务的任务执行结果为执行成功。
在一个示例性的实施方式中,所述任务执行结果确定单元还包括:
目标数量账号获取单元,被配置为执行若所述任务执行进度达到所述目标任务对应的预设任务执行进度,则获取所述目标有序集合中排序在前的目标数量个账号;所述目标数量与所述预设任务进度相匹配;
第二判断单元,被配置为执行判断所述目标数量个账号中是否包括所述第一账号;
第二任务执行结果确定子单元,被配置为执行若所述目标数量个账号中包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行成功;
第三任务执行结果确定子单元,被配置为执行若所述目标数量个账号中不包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行失败。
在一个示例性的实施方式中,所述账号存储单元包括:
第一指令生成单元,被配置为执行根据所述任务执行请求生成写入指令;所述写入指令指示将所述第一账号存入所述第二账号对应的目标有序集合中;
第一指令发送单元,被配置为执行通过目标请求处理线程对应的数据管道将所述写入指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程。
在一个示例性的实施方式中,所述任务执行进度确定单元包括:
第二指令生成单元,被配置为执行根据所述任务执行请求生成查询指令;所述查询指令指示查询所述目标有序集合中账号的总数量;
第二指令发送单元,被配置为执行通过所述目标请求处理线程对应的数据管道将所述查询指令发送至所述内存数据库;
第一返回结果获取单元,被配置为执行获取所述内存数据库执行所述查询指令返回的结果,得到所述目标任务的任务执行进度。
在一个示例性的实施方式中,所述目标数量账号获取单元包括:
第三指令生成单元,被配置为执行生成截取指令和账号提取指令;所述截取指令指示将所述目标有序集合中排序在前的所述目标数量个账号作为截取对象进行截取;所述账号提取指令指示提取所述截取对象中的账号;
第三指令发送单元,被配置为执行通过目标请求处理线程对应的数据管道将所述截取指令和账号提取指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程;
第二返回结果获取单元,被配置为执行获取所述内存数据库执行所述截取指令和账号提取指令返回的结果,得到所述目标有序集合中排序在前的所述目标数量个账号。
在一个示例性的实施方式中,所述装置还包括:
任务执行提示消息生成单元,被配置为执行若所述任务执行结果为执行失败,则生成任务执行提示消息;所述任务执行提示消息指示所述目标任务的任务执行进度已达到所述预设任务执行进度;
任务执行提示消息发送单元,被配置为执行向所述第一账号对应的终端以及所述第二账号对应的终端分别发送所述任务执行提示消息。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面的任务请求处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面的任务请求处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面的任务请求处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过在接收到第一账号针对第二账号发起的目标任务的任务执行请求时,将该第一账号存入该第二账号对应的目标有序集合中,该目标有序集合以任务执行请求的时间戳为排序依据存储该第一账号,且该目标有序集合为基于单线程的内存数据中的有序集合,进而根据该目标有序集合中账号的总数量确定目标任务的任务执行进度,并根据该任务执行进度与目标任务对应的预设任务执行进度的比对情况,确定该第一账号针对目标任务的任务执行结果,从而确保了针对目标任务的多个任务执行请求的先后顺序的准确性,进而提高了高并发情况下对于任务执行请求对应的任务执行结果判定的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种任务请求处理方法的应用环境示意图;
图2是根据一示例性实施例示出的一种任务请求处理方法的流程图;
图3是根据一示例性实施例示出的另一种任务请求处理方法的流程图;
图4是根据一示例性实施例示出的另一种任务请求处理方法的流程图;
图5是根据一示例性实施例示出的一种任务请求处理方法的架构示意图;
图6是根据一示例性实施例示出的一种任务请求处理装置的框图;
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,其所示为根据一示例性实施例示出的一种任务请求处理方法的应用环境示意图,该应用环境可以包括终端110、处理服务器120和基于单线程的内存数据库130。其中,终端110与服务器120之间,以及服务器120与内存数据库130之间可以通过有线网络或者无线网络连接。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端110中安装有可以实现人机交互功能的客户端软件如应用程序(Application,简称为App),该应用程序可以是独立的应用程序,也可以是应用程序中的子程序。示例性的,该应用程序可以包括游戏应用程序、直播应用程序等。终端110的用户可以通过预先注册的用户信息登录应用程序,该用户信息可以包括账号和密码。
处理服务器120可以是为终端110中的应用程序提供后台服务的服务器,也可以是与应用程序的后台服务器连接通信的其它服务器,可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体的,处理服务器120可以为应用程序的资源分发活动提供资源分发相关的服务。在一个示例性的应用场景中,资源分发活动可以助力互动的形式呈现,参加助力互动的用户可以发起助力任务,并邀请其他用户如好友执行该助力任务,通过其他用户对该助力任务的执行情况以得到活动奖励,该活动奖励可以是金币、折扣券、积分等虚拟资源。在该应用场景下,处理服务器120可以接收对助力任务的任务执行请求,并根据该助力任务的任务执行进度对该任务执行请求进行处理以确定任务执行结果,该任务执行结果可以是任务执行成功即助力成功或者任务执行失败即助力失败。
基于单线程的内存数据库130可以是基于单线程的键值对Key-Value数据库,该内存数据库130在处理事件时采用单线程模式,即处理过程都在一个线程中,且该内存数据库130支持zset(sorted set,有序集合)的存储数据类型。有序集合也是集合类型的一部分,它保留了集合中元素不能重复的特性,但是不同的是,有序集合给每个元素多设置了一个分数(score),并利用该分数为排序依据对有序集合中的元素进行从小到大的排序。
在一个示例性的实施方式中,基于单线程的内存数据库130可以是Redis数据库,在Redis数据库中支持多种存储数据类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted set,有序集合)和hash(哈希类型),并提供一套强大的应用程序编程接口,在这些数据类型上进行丰富的操作。Redis数据缓存在内存中,周期性的将更新数据写入磁盘,并在此基础上实现主盘-从盘同步,具有轻量、高性能、支持数据结构丰富等优点。
图2是根据一示例性实施例示出的一种任务请求处理方法的流程图,如图2所示,以该任务请求处理方法应用于图1的处理服务器为例,包括以下步骤:
在步骤S201中,接收第一账号针对目标任务的任务执行请求。
其中,所述目标任务为第二账号发起的用于获取目标资源的任务。也即第二账号为目标任务的任务发起方,第一账号为目标任务的任务执行方。
在资源分发活动以助力互动形式呈现的场景中,示例性的,目标任务可以是第二账号发起的助力任务。
目标资源可以是资源分发活动中提供的资源,具体的实施中,该目标资源是指可用于进行商品或服务兑换的资源,比如电子货币、积分、金豆、礼金券、兑换券、优惠券、礼品卡、仅供某一平台内使用的虚拟币,还可以是游戏道具或者可供在游戏中换取游戏道具的钻石等等,本公开实施例对此不作具体限定。
在一个具体的实施方式中,第一账号与第二账号可以是具有关联关系如好友关系的账号,第二账号可以通过对应的终端直接向第一账号对应的终端发送目标任务,该目标任务用于请求第一账号执行预设任务执行操作以使得第二账号能够获取到目标资源。第一账号对应的终端在接收到该目标任务后可以响应于第一账号对该目标任务的预设任务执行操作生成任务执行请求,并将该任务执行请求发送给处理服务器,该任务执行请求中包括该第一账号和第二账号。示例性的,上述预设任务执行操作可以通过目标任务向第一账号进行提示,如预设任务执行操作可以是点击、分享或者浏览预设页面等操作。可以理解的,第二账号也可以将目标任务发布到社交平台,那么针对该目标任务进行预设任务执行操作的社交平台中的其他账号即为第一账号。
在步骤S203中,将所述第一账号存入所述第二账号对应的目标有序集合中。
其中,所述目标有序集合为基于单线程的内存数据库中的有序集合,所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号。具体来说,该目标有序集合用于存储执行上述目标任务的任务执行方对应的账号。
在基于单线程的内存数据库为键值对Key-Value数据库的应用场景中,该内存数据库中的有序集合的键key可以为任务发起方的账号,值value可以为执行键key对应的目标任务的任务执行方的账号,作为排序依据的分数(score)可以为值value对应的任务执行请求的时间戳。基于此,上述步骤S203在实施时可以第二账号为键key,查找基于单线程的内存数据库中与该键key相匹配的有序集合,从而确定第二账号对应的目标有序集合,并根据接收到第一账号针对第二账号发起的目标任务的任务执行请求的时间戳将上述第二账号存入目标有序集合中。
可以理解的,当在内存数据库中未查找到与该第二账号对应的目标有序集合时,表明该任务执行请求为针对该第二账号发起的目标任务的首个任务执行请求,此时可以该第二账号为键key,创建该键key对应的目标有序集合,并以该第一账号为值value,以接收到该任务执行请求的时间戳为分数score,将该第一账号存入上述目标有序集合中。
在步骤S205中,根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度。
具体的,可以获取该目标有序集合中账号的总数量,将该总数量作为目标任务的任务执行进度。
在步骤S207中,根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
其中,预设任务执行进度可以根据实际情况进行预先设定。
在一个示例性的实施方式中,针对不同任务发起方发起的目标任务,可以设置不同的预设任务执行进度。在一个具体的实施方式中,可以根据任务发起方在历史时间段内的活跃程度来确定其发起的目标任务对应的预设任务执行进度,例如活跃程度高的任务发起方可以设置其发起的目标任务对应比较小的预设任务执行进度,而活跃程度低的任务发起方可以设置其发起的目标任务对应比较大的预设任务执行进度,以此来促进活跃程度低的用户提高活跃程度。
本公开实施例对于第一账号针对第二账号发起的目标任务的任务执行请求,利用基于单线程的内存数据库中以时间戳为排序依据的目标有序集合存储该第一账号,并基于该目标有序集合中账号的总数量确定该目标任务的任务执行进度,以该任务执行进度与目标任务的预设任务执行进行的比对结果确定任务执行结果,充分利用了内存数据库的单线程处理模式以及有序集合的元素存储方式,从而确保了针对同一目标任务的多个任务执行请求的先后顺序的准确性,进而确保了高并发情况下对于任务执行请求对应的任务执行结果判定的准确性。
本公开实施例中,第一账号针对目标任务的任务执行结果可以包括执行成功和执行失败,实际应用中,处理服务器对于不同的任务执行结果可以有不同的响应方式。在一个示例性的实施方式中,为了提高对于任务执行请求的处理效率,避免高并发的任务执行请求对处理服务器性能的不利影响,在确定第一账号针对目标任务的任务执行结果之后,如图3所示,该方法还可以包括:
在步骤S209中,若所述任务执行结果为执行失败,则生成任务执行提示消息。
其中,所述任务执行提示消息指示所述目标任务的任务执行进度已达到所述预设任务执行进度。
在步骤S211中,向所述第一账号对应的终端以及所述第二账号对应的终端分别发送所述任务执行提示消息。
通过在任务执行结果为执行失败时生成任务执行提示消息,并将该任务执行提示消息分别发送给目标任务的任务发起方和任务执行方,从而可以使得目标任务的任务发起方能够在获悉其目标任务已经达到预设任务执行进度的情况下停止继续邀请其他用户执行该目标任务,而该目标任务的任务执行方能够在获悉该目标任务已经达到预设任务执行进度的情况下停止继续执行该目标任务,进而可以大大减少处理服务器接收到的任务执行请求的数量,有利于提高对任务执行请求的处理效率,避免高并发的任务执行请求对处理服务器性能的不利影响。
在一个示例性的实施方式中,在实施上述步骤S207根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果时,可以包括图4中所示的以下步骤:
在步骤S401中,判断所述任务执行进度是否达到所述目标任务对应的预设任务执行进度。
具体的,若判断的结果是该任务执行进度未达到所述目标任务对应的预设任务执行进度,则可以执行步骤S403;
反之,若判断的结果是该任务执行进度达到所述目标任务对应的预设任务执行进度,则可以执行步骤S405~S407。需要说明的是,任务执行进度达到所述目标任务对应的预设任务执行进度包括该任务执行进度等于预设任务执行进度,以及该任务执行进度大于预设任务执行进度。
在步骤S403中,确定所述第一账号针对所述目标任务的任务执行结果为执行成功。
在步骤S405中,获取所述目标有序集合中排序在前的目标数量个账号。
其中,所述目标数量与所述预设任务进度相匹配,也即该目标数量为预设任务执行进度所指示的数量。
在步骤S407中,判断所述目标数量个账号中是否包括所述第一账号。
具体的,若所述目标数量个账号中包括所述第一账号,则可以执行步骤S403;反之,若所述目标数量个账号中不包括所述第一账号,则可以执行步骤S409。
在步骤S409中,确定所述第一账号针对所述目标任务的任务执行结果为执行失败。
举例而言,第一账号包括账号1、账号2和账号3,发起目标任务的第二账号为账号A,且账号1、账号2和账号3依次执行该目标任务,该目标任务对应的预设任务执行进度为执行2次,则:
在账号1针对目标任务的任务执行请求到达处理服务器时,以该任务执行请求的时间戳作为排序依据将账号1存入账号A对应的目标有序集合,并得到账号A的任务执行进度为1次执行,由于1<2,从而确定账号1针对目标任务的任务执行结果为执行成功;
在账号2针对目标任务的任务执行请求到达处理服务器时,以该任务执行请求的时间戳作为排序依据将账号2存入账号A对应的目标有序集合,并得到账号A的任务执行进度为2次执行,由于该任务执行进度等于目标任务的预设任务执行进度,则获取账号A对应的目标有序集合中排序在前的2个账号即{账号1,账号2},由于{账号1,账号2}中包括账号2,从而确定账号2针对目标任务的任务执行结果为执行成功;
在账号3针对目标任务的任务执行请求到达处理服务器时,以该任务执行请求的时间戳作为排序依据将账号3存入账号A对应的目标有序集合,并得到账号A的任务执行进度为3次执行,由于3>2,则获取账号A对应的目标有序集合中排序在前的2个账号即{账号1,账号2},由于{账号1,账号2}中不包括账号3,从而确定账号3针对目标任务的任务执行结果为执行失败。
由上述技术方案可见,本公开实施例中即使账号1、账号2和账号3针对目标任务的任务执行请求分别由不同的服务器中不同的线程来处理,采用本公开实施例的方法仍可以准确的判定任务执行的先后顺序,进而确保了高并发情形下针对目标任务的各任务执行请求的任务执行结果判定的高准确性。
在一个示例性的实施方式中,为了提高在高并发情形下的处理效率,如图5提供的一种任务请求处理方法的架构示意图,处理服务器针对每个请求处理线程可以开启一个数据管道(pipeline),使得每个请求处理线程通过各自的数据管道与基于单线程的内存数据库进行交互,图5中以Redis数据库示例该基于单线程的内存数据库。
基于此,在一个具体的实施方式中,处理服务器在执行前述步骤S202,将所述第一账号存入所述第二账号对应的目标有序集合中时,可以包括以下步骤:
根据所述任务执行请求生成写入指令;所述写入指令指示将所述第一账号存入所述第二账号对应的目标有序集合中;
通过目标请求处理线程对应的数据管道将所述写入指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程。
基于此,在一个具体的实施方式中,处理服务器在执行前述步骤S203,根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度时,可以包括以下步骤:
根据所述任务执行请求生成查询指令;所述查询指令指示查询所述目标有序集合中账号的总数量;
通过所述目标请求处理线程对应的数据管道将所述查询指令发送至所述内存数据库;
获取所述内存数据库执行所述查询指令返回的结果,得到所述目标任务的任务执行进度。
在一个示例性的实施方式中,处理服务器可以根据任务执行请求同时生成写入指令和查询指令,然后依次将写入指令和查询指令通过目标请求处理线程对应的数据管道发送给内存数据库,由存数据库依次执行该写入指令和查询指令,并在查询指令执行结束后返回查询的结果。
以内存数据库为Redis数据库为例,Redis数据库在接收到写入指令后针对该写入指令可以调用zset命令对所述目标有序集合进行处理;Redis数据库在接收到查询指令后针对该查询指令可以调用zcard命令得到查询的结果,并将该查询的结果返回给处理服务器,从而处理服务器获取到目标任务的任务执行进度。
基于此,在一个具体的实施方式中,处理服务器在执行前述步骤SS405中,获取所述目标有序集合中排序在前的目标数量个账号时,可以包括以下步骤:
生成截取指令和账号提取指令;所述截取指令指示将所述目标有序集合中排序在前的所述目标数量个账号作为截取对象进行截取;所述账号提取指令指示提取所述截取对象中的账号;
通过目标请求处理线程对应的数据管道将所述截取指令和账号提取指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程;
获取所述内存数据库执行所述截取指令和账号提取指令返回的结果,得到所述目标有序集合中排序在前的所述目标数量个账号。
以内存数据库为Redis数据库为例,Redis数据库在接收到截取指令和账号提取指令时,先针对该截取指令调用zremrangeByRank命令对目标有序集合进行处理,得到截取对象,然后针对该账号提取指令调用zrangeByScore命令提取该截取对象中的账号,从而得到执行上述截取指令和账号提取指令的结果,并将该结果返回给处理服务器,如此该处理服务器得到目标有序集合中排序在前的目标数量个账号。
可以理解的,内存数据库在向处理服务器返回执行指令的结果时,仍可以使用所述目标请求处理线程对应的数据管道。
图6是根据一示例性实施例示出的一种任务请求处理装置的框图。参照图6,该任务请求处理装置600包括:任务执行请求接收单元610,账号存储单元620,任务执行进度确定单元630和任务执行结果确定单元640。
任务执行请求接收单元610,被配置为执行接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;
账号存储单元620,被配置为执行将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;
任务执行进度确定单元630,被配置为执行根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;
任务执行结果确定单元640,被配置为执行根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
在一个示例性的实施方式中,所述任务执行结果确定单元640包括:
第一判断单元,被配置为执行判断所述任务执行进度是否达到所述目标任务对应的预设任务执行进度;
第一任务执行结果确定子单元,被配置为执行在所述第一判断单元判断的结果为否时,确定所述第一账号针对所述目标任务的任务执行结果为执行成功。
在一个示例性的实施方式中,所述任务执行结果确定单元640还包括:
目标数量账号获取单元,被配置为执行若所述任务执行进度达到所述目标任务对应的预设任务执行进度,则获取所述目标有序集合中排序在前的目标数量个账号;所述目标数量与所述预设任务进度相匹配;
第二判断单元,被配置为执行判断所述目标数量个账号中是否包括所述第一账号;
第二任务执行结果确定子单元,被配置为执行若所述目标数量个账号中包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行成功;
第三任务执行结果确定子单元,被配置为执行若所述目标数量个账号中不包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行失败。
在一个示例性的实施方式中,所述账号存储单元620包括:
第一指令生成单元,被配置为执行根据所述任务执行请求生成写入指令;所述写入指令指示将所述第一账号存入所述第二账号对应的目标有序集合中;
第一指令发送单元,被配置为执行通过目标请求处理线程对应的数据管道将所述写入指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程。
在一个示例性的实施方式中,所述任务执行进度确定单元630包括:
第二指令生成单元,被配置为执行根据所述任务执行请求生成查询指令;所述查询指令指示查询所述目标有序集合中账号的总数量;
第二指令发送单元,被配置为执行通过所述目标请求处理线程对应的数据管道将所述查询指令发送至所述内存数据库;
第一返回结果获取单元,被配置为执行获取所述内存数据库执行所述查询指令返回的结果,得到所述目标任务的任务执行进度。
在一个示例性的实施方式中,所述目标数量账号获取单元包括:
第三指令生成单元,被配置为执行生成截取指令和账号提取指令;所述截取指令指示将所述目标有序集合中排序在前的所述目标数量个账号作为截取对象进行截取;所述账号提取指令指示提取所述截取对象中的账号;
第三指令发送单元,被配置为执行通过目标请求处理线程对应的数据管道将所述截取指令和账号提取指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程;
第二返回结果获取单元,被配置为执行获取所述内存数据库执行所述截取指令和账号提取指令返回的结果,得到所述目标有序集合中排序在前的所述目标数量个账号。
在一个示例性的实施方式中,所述装置600还包括:
任务执行提示消息生成单元,被配置为执行若所述任务执行结果为执行失败,则生成任务执行提示消息;所述任务执行提示消息指示所述目标任务的任务执行进度已达到所述预设任务执行进度;
任务执行提示消息发送单元,被配置为执行向所述第一账号对应的终端以及所述第二账号对应的终端分别发送所述任务执行提示消息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个示例性的实施方式中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现本公开实施例中提供的任意一种任务请求处理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及处理任务请求。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本公开实施例中的电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图7是根据一示例性实施例示出的一种用于任务请求处理的电子设备的框图,如图7所示,该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)710(处理器710可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储介质720的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在服务器700上执行存储介质720中的一系列指令操作。服务器700还可以包括一个或一个以上电源760,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口740可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
在一个示例性的实施方式中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器730,上述指令可由装置700的处理器710执行以完成本公开实施例提供的任意一种任务请求处理方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在一个示例性的实施方式中,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本公开实施例提供的任意一种任务请求处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种任务请求处理方法,其特征在于,包括:
接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;
将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;
根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;
根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
2.根据权利要求1所述的任务请求处理方法,其特征在于,所述根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果,包括:
判断所述任务执行进度是否达到所述目标任务对应的预设任务执行进度;
在判断的结果为否时,确定所述第一账号针对所述目标任务的任务执行结果为执行成功。
3.根据权利要求2所述的任务请求处理方法,其特征在于,所述方法还包括:
若所述任务执行进度达到所述目标任务对应的预设任务执行进度,则获取所述目标有序集合中排序在前的目标数量个账号;所述目标数量与所述预设任务进度相匹配;
判断所述目标数量个账号中是否包括所述第一账号;
若所述目标数量个账号中包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行成功;
若所述目标数量个账号中不包括所述第一账号,则确定所述第一账号针对所述目标任务的任务执行结果为执行失败。
4.根据权利要求1所述的任务请求处理方法,其特征在于,所述将所述第一账号存入所述第二账号对应的目标有序集合中,包括:
根据所述任务执行请求生成写入指令;所述写入指令指示将所述第一账号存入所述第二账号对应的目标有序集合中;
通过目标请求处理线程对应的数据管道将所述写入指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程。
5.根据权利要求4所述的任务请求处理方法,其特征在于,所述根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度,包括:
根据所述任务执行请求生成查询指令;所述查询指令指示查询所述目标有序集合中账号的总数量;
通过所述目标请求处理线程对应的数据管道将所述查询指令发送至所述内存数据库;
获取所述内存数据库执行所述查询指令返回的结果,得到所述目标任务的任务执行进度。
6.根据权利要求3所述的任务请求处理方法,其特征在于,所述获取所述目标有序集合中排序在前的目标数量个账号,包括:
生成截取指令和账号提取指令;所述截取指令指示将所述目标有序集合中排序在前的所述目标数量个账号作为截取对象进行截取;所述账号提取指令指示提取所述截取对象中的账号;
通过目标请求处理线程对应的数据管道将所述截取指令和账号提取指令发送至所述内存数据库;所述目标请求处理线程是指当前处理所述任务执行请求的线程;
获取所述内存数据库执行所述截取指令和账号提取指令返回的结果,得到所述目标有序集合中排序在前的所述目标数量个账号。
7.一种任务请求处理装置,其特征在于,包括:
任务执行请求接收单元,被配置为执行接收第一账号针对目标任务的任务执行请求;所述目标任务为第二账号发起的用于获取目标资源的任务;
账号存储单元,被配置为执行将所述第一账号存入所述第二账号对应的目标有序集合中;所述目标有序集合以所述任务执行请求的时间戳为排序依据存储所述第一账号;所述目标有序集合为基于单线程的内存数据库中的有序集合;
任务执行进度确定单元,被配置为执行根据所述目标有序集合中账号的总数量,确定所述目标任务的任务执行进度;
任务执行结果确定单元,被配置为执行根据所述任务执行进度与所述目标任务对应的预设任务执行进度的比对情况,确定所述第一账号针对所述目标任务的任务执行结果。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的任务请求处理方法。
9.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的任务请求处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的任务请求处理方法。
CN202110489336.9A 2021-04-29 2021-04-29 一种任务请求处理方法、装置、电子设备及存储介质 Active CN113238860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110489336.9A CN113238860B (zh) 2021-04-29 2021-04-29 一种任务请求处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110489336.9A CN113238860B (zh) 2021-04-29 2021-04-29 一种任务请求处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113238860A true CN113238860A (zh) 2021-08-10
CN113238860B CN113238860B (zh) 2024-03-26

Family

ID=77132053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110489336.9A Active CN113238860B (zh) 2021-04-29 2021-04-29 一种任务请求处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113238860B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339273A (zh) * 2021-12-20 2022-04-12 北京快来文化传播集团有限公司 教育直播平台上获取虚拟币方法、装置及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034364A (zh) * 2007-04-02 2007-09-12 华为技术有限公司 一种实现内存数据备份的方法、装置和系统
US20160342921A1 (en) * 2015-05-19 2016-11-24 Matthew P. Morin Employee cyclic award tracking system
CN109316753A (zh) * 2018-09-18 2019-02-12 珠海金山网络游戏科技有限公司 一种组队的方法、装置及电子设备
CN109558234A (zh) * 2018-11-30 2019-04-02 中国联合网络通信集团有限公司 一种定时任务调度方法和装置
CN109816495A (zh) * 2019-02-13 2019-05-28 北京达佳互联信息技术有限公司 商品信息推送方法、系统及服务器和存储介质
CN110502327A (zh) * 2019-08-28 2019-11-26 四川长虹电器股份有限公司 基于Redis高并发延时任务处理的方法
CN110852776A (zh) * 2019-09-24 2020-02-28 京东数字科技控股有限公司 任务的处理方法和装置、存储介质、电子装置
CN111045806A (zh) * 2019-12-16 2020-04-21 云南优鸟科技有限公司 延迟消息队列实现方法以及系统
CN111612511A (zh) * 2020-04-11 2020-09-01 上海淇玥信息技术有限公司 一种基于活动任务的资源分配方法、装置和电子设备
CN112561564A (zh) * 2020-11-27 2021-03-26 北京三快在线科技有限公司 资源发放方法、装置、电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101034364A (zh) * 2007-04-02 2007-09-12 华为技术有限公司 一种实现内存数据备份的方法、装置和系统
US20160342921A1 (en) * 2015-05-19 2016-11-24 Matthew P. Morin Employee cyclic award tracking system
CN109316753A (zh) * 2018-09-18 2019-02-12 珠海金山网络游戏科技有限公司 一种组队的方法、装置及电子设备
CN109558234A (zh) * 2018-11-30 2019-04-02 中国联合网络通信集团有限公司 一种定时任务调度方法和装置
CN109816495A (zh) * 2019-02-13 2019-05-28 北京达佳互联信息技术有限公司 商品信息推送方法、系统及服务器和存储介质
CN110502327A (zh) * 2019-08-28 2019-11-26 四川长虹电器股份有限公司 基于Redis高并发延时任务处理的方法
CN110852776A (zh) * 2019-09-24 2020-02-28 京东数字科技控股有限公司 任务的处理方法和装置、存储介质、电子装置
CN111045806A (zh) * 2019-12-16 2020-04-21 云南优鸟科技有限公司 延迟消息队列实现方法以及系统
CN111612511A (zh) * 2020-04-11 2020-09-01 上海淇玥信息技术有限公司 一种基于活动任务的资源分配方法、装置和电子设备
CN112561564A (zh) * 2020-11-27 2021-03-26 北京三快在线科技有限公司 资源发放方法、装置、电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339273A (zh) * 2021-12-20 2022-04-12 北京快来文化传播集团有限公司 教育直播平台上获取虚拟币方法、装置及设备

Also Published As

Publication number Publication date
CN113238860B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
US12039366B2 (en) Task processing method, system, device, and storage medium
JP6883111B2 (ja) イベント駆動型ブロックチェーンワークフロー処理
CN110620812B (zh) 交互信息的推送方法、装置、计算机设备和存储介质
CN110247984B (zh) 业务处理方法、装置及存储介质
CN102449602A (zh) 用于降低软件应用的启动成本的系统和方法
CN110474820B (zh) 流量回放方法、装置、电子设备
CN110347545A (zh) 一种业务平台缓存策略的测试方法及装置
CN111611305A (zh) 一种数据处理方法、装置及介质
CN113476853A (zh) 交互任务的数据处理方法、装置、电子设备、存储介质
CN111694873B (zh) 虚拟资源包的处理方法、装置及数据库服务器
CN111400356B (zh) 数据查询方法、装置及设备
CN113781119A (zh) 一种虚拟资源发送方法、装置、电子设备及存储介质
CN113238860B (zh) 一种任务请求处理方法、装置、电子设备及存储介质
CN107193749B (zh) 测试方法、装置及设备
CN113342863A (zh) 业务单据处理方法、装置、计算机设备和存储介质
CN113676528A (zh) 一种登录账号的同步方法、装置、设备、及介质
CN112783790A (zh) 一种应用程序测试方法和装置
CN110619275B (zh) 信息推送方法、装置、计算机设备和存储介质
CN111753218A (zh) 一种热点知识确定方法和相关装置
CN104539450B (zh) 网站运营活动处理系统、方法和装置
CN110928895B (zh) 一种数据查询、数据表建立方法、装置及设备
CN113691586B (zh) 一种资源分发方法、装置、电子设备及存储介质
CN110909072A (zh) 一种数据表建立方法、装置及设备
CN113268340A (zh) 一种虚拟资源包的生成方法、装置、电子设备及存储介质
CN114186046A (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
GR01 Patent grant
GR01 Patent grant