CN109960596B - 一种防止机器人抢单的方法及装置 - Google Patents

一种防止机器人抢单的方法及装置 Download PDF

Info

Publication number
CN109960596B
CN109960596B CN201711433111.1A CN201711433111A CN109960596B CN 109960596 B CN109960596 B CN 109960596B CN 201711433111 A CN201711433111 A CN 201711433111A CN 109960596 B CN109960596 B CN 109960596B
Authority
CN
China
Prior art keywords
cookie
session
timer
queue
order grabbing
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
CN201711433111.1A
Other languages
English (en)
Other versions
CN109960596A (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Henan Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Henan 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 China Mobile Communications Group Co Ltd, China Mobile Group Henan Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711433111.1A priority Critical patent/CN109960596B/zh
Publication of CN109960596A publication Critical patent/CN109960596A/zh
Application granted granted Critical
Publication of CN109960596B publication Critical patent/CN109960596B/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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供一种防止机器人抢单的方法及装置。所述方法包括第一服务器接收由所有终端发送的抢单请求至少包括所述终端的终端标识;根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置cookie计时器,本发明实施例通过根据接收到的抢单请求中的cookie设置cookie队列,并通过随机的时间控制来开放cookie队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。

Description

一种防止机器人抢单的方法及装置
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种防止机器人抢单的方法及装置。
背景技术
现在生活中倒处会出现像“秒杀”活动这样的抢单业务场景,对于系统的挑战是高并发,高流量,持续时间集中,短时间内流量陡增数倍,甚至数十倍。这类秒杀活动中会出现作弊机器人,作弊机器人一般分为两类,一类是单进程快刷,多进程并行刷新。假设单进程机器人用户在1秒内发起10次请求,真实用户A、B 1秒内发起1次请求,没有防刷机器人模块时,在第1秒时,机器人用户已完成10次请求,而真实用户才发起请求,没有公平公正,而多进程机器人会更加加剧这种不公平秒杀。
为了解决上述情况限制机器人刷单,目前有如下的解决方案:方案一:利用Nginx作为代理服务器,应用负载均衡器通过分流减小各个应用服务器的流量,解决系统高并发问题。方案二:利用网络层设备屏蔽指定IP信息,通过数据分析,判断出哪个IP有恶意点击或者无效点击的嫌疑,然后通过百度推广的IP屏蔽功能将其屏蔽掉。方案三:通过购买专业的防控安全软件,限制机器人刷单。
上述这些方案随着业务的不断增加,服务器性能很快又达到瓶颈,且价格比较昂贵,成本较高。而IP屏蔽会因为IP段屏蔽错误会导致失去潜在客户,存在错误封IP的问题。
发明内容
本发明实施例提供一种防止机器人抢单的方法及装置,用以解决现有技术中随着业务的不断增加,服务器性能很快又达到瓶颈,且价格比较昂贵,成本较高。而IP屏蔽会因为IP段屏蔽错误会导致失去潜在客户,存在错误封IP的问题。
第一方面,本发明实施例提供了一种防止机器人抢单的方法,包括:
第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
第二方面,本发明实施例提供了一种用于防止机器人抢单的装置,包括:
第一接收模块,用于接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
第一存储模块,用于根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
第一提取模块,用于监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
第三方面,本发明实施例还提供了一种电子设备,包括:
处理器、存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该电子设备的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
第四方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:
第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
本发明实施例提供的防止机器人抢单的方法及装置,通过在第一服务器根据接收到的抢单请求中的cookie在cookie列表中设置cookie队列,来对相同cookie的抢单请求进行排队,并通过随机的时间控制来开放cookie队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
附图说明
图1为本发明实施例的防止机器人抢单的方法流程图;
图2为本发明实施例的另一防止机器人抢单的方法流程图;
图3为本发明实施例的用于防止机器人抢单的装置的结构示意图;
图4为本发明实施例的另一用于防止机器人抢单的装置的结构示意图;
图5为本发明实施例的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的防止机器人抢单的方法流程图,如图1所示,所述方法包括:
步骤S01、第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
在进行抢单活动时,例如双11秒杀活动,由于货物少,抢单用户发出的抢单请求数量远大于货物量,其中使用机器人的用户在终端发送的抢单请求数量多远大于普通用户发送的抢单请求就会大大增加该用户的抢单成功率。为了在能够尽量保证不同用户抢单的公平性,所以在执行抢单的抢单应用前,增加一个防机器人抢单的第一服务器来对接收到的抢单请求进行预处理,该第一服务器可以是在Nginx代理商使用LUA技术自定义的一个安全算法模块,也可以用来检验用户当前访问的步骤是否合法。另外,所述第一服务器还会与所述终端约定在终端发送的抢单请求中至少包括有所述终端的终端标识。所述终端标识可以以cookie的形式出现,即在终端发送的抢单请求中加入cookie,其中所述cookie至少包含有与所述终端的用户状态相关的信息,例如终端ID、用户标识或者路由信息等。
如此第一服务器就可以通过终端标识的来识别是否有大量的抢单请求来源于相同的终端,从而将这些在短时间内来源于相同终端的抢单请求判定为由机器人发送的抢单请求。
步骤S02、所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
所述第一服务器会对接收到的每一个抢单请求,先解析出该抢单请求中的终端标识,然后在存储的cookie列表中的大量cookie队列中查找是否存在与该终端标识相对应的cookie队列,即该cookie队列中存储的所有抢单请求都包含有相同的终端标识。如果在cookie列表中找到了该cookie队列,则直接将接收到的抢单请求存入到该cookie队列的队尾。如此,所述第一服务器也就将所有来源于同一终端的抢单请求存入到了同一个cookie队列中。所述cookie列表中的cookie队列数量也就表示发送该cookie列表中所有的抢单请求的终端数量,例如,所述cookie列表中包含有4个cookie队列,则表示该cookie列表中所有的抢单请求分别来源于4个终端。
进一步地,若所述第一服务器根据终端标识,没有找到与所述抢单请求相对应的cookie队列,则创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,并将所述抢单请求存入新创建的cookie队列中。
如果所述第一服务器没有在所述cookie列表中找到与接收到的抢单请求相对应的cookie队列,则说明所述cookie列表中不存在来源于同一终端的抢单请求。此时,就需要在cookie列表中创建一条与所述终端标识相对应的cookie队列,同时在该新建的cookie队列中创建一个cookie计时器。随即将接收到的相对应的抢单请求存入到新创建的cookie队列中,同时该cookie计时器开始计时。
步骤S03、所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
所述第一服务器会定期或者不间断得监测每个cookie队列中的cookie计时器的计时,并均与所述第一服务器预先设置的第一时间阈值,例如4秒,进行比对。当其中有cookie计时器的计时达到了该第一时间阈值时,则所述第一服务器就会将该cookie计时器所在的cookie队列开放,并从cookie队列中提取出的队首的抢单请求,也就是当前cookie队列中最早存入的抢单请求。然后将提取出的抢单请求发送给抢单模块来具体执行抢单操作。
所述第一服务器在提取出cookie队列的队首后,会查看该cookie队列是否还存在其它抢单请求。如果该cookie队列为空,则可以从所述cookie列表中删除该cookie队列;而如果该cookie队列还存在其它抢单请求,则需要重置该cookie队列中的cookie计时器,以待cookie计时器计时再次达到所述第一时间阈值后再次开放该cookie队列并提取下一个队首的抢单请求。
本发明实施例通过在第一服务器根据接收到的抢单请求中的终端标识在cookie列表中设置cookie队列,来对相同终端标识的抢单请求进行排队,并通过cookie计时器的计时来开放cookie队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
图2为本发明实施例的另一防止机器人抢单的方法流程图,如图2所示,所述抢单请求还包括用户标识,相应地,所述步骤S03,具体为:
步骤S031,所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给第二服务器,并重置所述cookie计时器。
由于在抢单活动的抢单请求量会很大,所以使用第一服务器对所有的抢单请求进行预处理时,可能会同时设定多台第一服务器来分别执行预处理操作。此时就可能会使同一个用户的抢单请求,通过不同的第一服务器进入到抢单应用中,从而增加了该用户的抢单成功率。另外,有些用户为了增加抢单的成功率,会在不同的终端同时使用机器人来同时发送抢单请求,而由于这些抢单请求是在不同的终端发出的,所以其中包含的终端标识也会有所不同,在第一服务器中会将它们排列在不同的cookie队列中来进行预处理,从而使该用户的抢单成功率增加。
此时就需要在引入防机器人抢单的第二服务器,通过对抢单请求中包含的用户标识来对抢单请求进行预处理。
所述第二服务器将被设置在抢单模块前,即可以是在第一服务器之后,也可以在不存在第一服务器时单独使用,但为了表述方便,在下面的实施例中都只以所述第二服务器在所述第一服务器和所述抢单应用之间为例进行举例说明。
通过上述实施例中第一服务器对所有抢单请求的预处理后,所述第一服务器会根据每个cookie队列的cookie计时器将从各个cookie队列中提取到的队首抢单请求,直接发送给第二服务器。
所述方法在所述步骤S031后,还包括:
步骤S04、所述第二服务器根据用户标识,将接收到的每个抢单请求保存到相对应的session队列中,其中所述session队列与所述用户标识一一对应,每个session队列都包括一个session计时器。
所述第二服务器会对接收到的每个抢单请求先提取到其中的用户标识,然后在存储的session列表中大量的session队列中查找是否存在与所述用户标识相对应的session队列,即与该session队列中的所有抢单请求的用户标识相同。若找到相对应的session队列,则将所述抢单请求存入所述session队列中。其中所述用户标识可以为抢单活动中用户使用的用户ID,例如网站账号等,或者是用户的手机号,具体可以根据实际的应用场景来设定。如此,所述第二服务器也就将所有包含相同用户标识的抢单请求存入到了同一个session队列中。所述session列表中的session队列数量也就表示发送该session列表中所有的抢单请求的用户的数量。
进一步地,若所述第二服务器根据用户标识,没有找到与所述抢单请求相对应的session队列,则创建与所述用户标识一一对应的session队列所述session队列的session计时器,并将所述抢单请求存入新建的session队列中。
如果所述第二服务器没有在所述session列表中找到与接收到的抢单请求相对应的session队列,则说明所述session列表中不存在包含相同用户标识的抢单请求。此时就需要在session列表中创建一条与所述用户标识相对应的session队列,同时在该新建的session队列中创建一个session计时器。随即将接收到的相对应的抢单请求存入到新创建的session队列中,同时该session讲时器开始计时。
步骤S05、所述第二服务器监测每个session计时器是否到达预设的第二时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器。
所述第二服务器会定期或者不间断得监测每一个session计时器的计时,并均与所述第二服务器预先设置的第二时间阈值,例如3秒,进行比对,当其中有session计时器的计时达到该第二时间阈值时,所述第二服务器就会将该session计时器所在的session队列开放,并提取出该session队列的队首的抢单请求,并将提取出抢单请求发送给抢单应用来具体执行抢单操作。
所述第二服务器在提取出session队列的队首后,会查看该session队列是否还存在其它抢单请求。如果该session队列为空,则可以从所述session列表中删除该session队列;而如果该session队列还存在其它抢单请求,则需要重置该session队列中的session计时器,以待session计时器的计时达到所述第二时间阈值后再次开放该session队列并提取下一个session队首。
本发明实施例通过在第二服务器根据接收到的抢单请求中的用户标识在session列表中设置session队列,来对相同用户标识的抢单请求进行排队,并通过session计时器的计时来开放session队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
基于上述实施例,进一步地,所述创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,具体为:
创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,同时在预设的第一时间范围内随机设定所述cookie计时器的cookie时间阈值;相应地,所述步骤S03,具体为:
所述第一服务器监测每个cookie计时器是否到达每个cookie计时器的cookie时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器,同时重新在所述第一时间范围内随机设定所述cookie计时器的cookie时间阈值。
在进行抢单时,不只是抢单请求发起的数量会影响抢单成功率,抢单请求发起的速度也会影响抢单的成功率,所以当用户采用机器人来发起抢单请求时与普通用户发起的抢单请求,必定会更加快速,从而增加了机器人的抢单成功率。为此,所述第一服务器可以通过在设置cookie计时器的同时,在预设的第一时间范围内,例如3~6秒,随机选取该cookie计时器的cookie时间阈值,例如3.4秒或4.5秒等。也就是每一个cookie队列的cookie计时器都会有一个属于自己的cookie时间阈值,而不再是统一的第一时间阈值,例如cookie队列A的cookie计时器A1的cookie时间阈值为3.4秒,而cookie队列B的cookie计时器B1的cookie时间阈值则可以为4.5秒。当然对于第一时间范围的设定可以根据实际的使用情况来进行,在此不作具体的限定。而对于cookie时间阈值选取的方式,可以在阻塞时间范围内采用各种不同的随机概率分布来进行选取,例如等概率分布、泊松分布、高斯分布或指数分布等,在此也不作具体的限定。另外对于选取的时间精度也同样可以根据实际的运行状态来决定。
如此,在所述第一服务器对每个cookie计时器进行监测时,需要将每个cookie计时器的计时分别与它们各自相对应的cookie时间阈值来进行比对。只有当cookie计时器的计时到达相对应的cookie时间阈值时,才从该cookie计时器所在的cookie队列中提取出队首并发送给枪单模块或者第二服务器,并重置该cookie计时器,而同时也会重置该cookie计时器的cookie时间阈值,也就是重新从第一时间范围内随机选择一个新的时间作为该cookie计时器的新的cookie时间阈值。每个cookie队列被关闭的时间间隔,也就是相邻两次被提取队首的时间间隔会在第一时间范围内变化。
本发明实施例通过在随机设置cookie计时器的cookie时间阈值,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
基于上述实施例,进一步地,所述创建与所述用户标识一一对应的session队列所述session队列的session计时器,具体为:
创建与所述用户标识一一对应的session队列所述session队列的session计时器,同时在预设的第二时间范围内随机设定所述session计时器的session时间阈值;相应地,所述步骤S05,具体为:
所述第二服务器监测每个session计时器是否到达每个session计时器的session时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器,同时重新在所述第二时间范围内随机设定所述session计时器的session时间阈值。
与上述的cookie计时器的设置方法相同,所述第二服务器也可以设置session计时器的同时,在预设的第二时间范围内,例如2~6秒,随机选取该session计时器的session时间阈值,例如4.1秒或5.3秒等。也就是每一个session队列的session计时器都会有一个属于自己的session时间阈值,而不再是统一的第二时间阈值。当然对于第二时间范围的设定可以所述第一时间范围相同,也可以各自设定,具体可以根据实际的使用情况来决定,在此不作具体的限定。而对于session时间阈值选取的方式,可以在阻塞时间范围内采用各种不同的随机概率分布来进行选取。另外对于选取的时间精度也同样可以根据实际的运行状态来决定。
如此,在所述第二服务器对每个session计时器进行监测时,需要将每个session计时器的计时分别与它们各自相对应的session时间阈值来进行比对。只有当session计时器的计时到达相对应的session时间阈值时,才从该session计时器所在的session队列中提取出队首并发送给枪单模块,并重置该session计时器,而同时也会重置该session计时器的session时间阈值,也就是重新从第二时间范围内随机选择一个新的时间作为该session计时器的新的session时间阈值。每个session队列被关闭的时间间隔,也就是相邻两次被提取队首的时间间隔会在第二时间范围内变化。
本发明实施例通过在随机设置session计时器的session时间阈值,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
图3为本发明实施例的用于防止机器人抢单的装置的结构示意图,如图3所示,所述装置包括:第一接收模块10、第一存储模块11和第一提取模块12,其中:
所述第一接收模块10用于接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;所述第一存储模块11用于根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;所述第一提取模块12用于监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。具体地:
在进行抢单活动时,所述第一接收模块10会接收到来自所有终端发送的抢单请求,其中所述抢单请求中至少包括有所述终端的终端标识。如此可以通过终端标识的来识别是否有大量的抢单请求来源于相同的终端,从而将这些在短时间内来源于相同终端的抢单请求判定为由机器人发送的抢单请求。所述第一接收模块10会将接收到的所有抢单请求发送给第一存储模块11。
所述第一存储模块11会对接收到的每一个抢单请求,先解析出该抢单请求中的终端标识,然后在存储的cookie列表中的大量cookie队列中查找是否存在与该终端标识相对应的cookie队列,即该cookie队列中存储的所有抢单请求都包含有相同的终端标识。如果在cookie列表中找到了该cookie队列,则直接将接收到的抢单请求存入到该cookie队列的队尾。如此,所述第一存储模块11也就将所有来源于同一终端的抢单请求存入到了同一个cookie队列中。所述cookie列表中的cookie队列数量也就表示发送该cookie列表中所有的抢单请求的终端数量。
进一步地,若所述第一存储模块11根据终端标识,没有找到与所述抢单请求相对应的cookie队列,则创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,并将所述抢单请求存入新创建的cookie队列中。
如果所述第一存储模块11没有在所述cookie列表中找到与接收到的抢单请求相对应的cookie队列,则说明所述cookie列表中不存在来源于同一终端的抢单请求。此时,就需要在cookie列表中创建一条与所述终端标识相对应的cookie队列,同时在该新建的cookie队列中创建一个cookie计时器。随即将接收到的相对应的抢单请求存入到新创建的cookie队列中,同时该cookie计时器开始计时。
所述第一提取模块12会定期或者不间断得监测cookie列表中每个cookie队列中的cookie计时器的计时,并均与所述第一提取模块12预先设置的第一时间阈值进行比对,当其中有cookie计时器的计时达到了该第一时间阈值时,则所述第一提取模块12就会将该cookie计时器所在的cookie队列开放,并从cookie队列中提取出的队首的抢单请求,也就是当前cookie队列中最早存入的抢单请求。然后将提取出的抢单请求发送给抢单模块来具体执行抢单操作。
所述第一提取模块在提取出cookie队列的队首后,会查看该cookie队列是否还存在其它抢单请求。如果该cookie队列为空,则可以从所述cookie列表中删除该cookie队列;而如果该cookie队列还存在其它抢单请求,则需要重置该cookie队列中的cookie计时器,以待cookie计时器计时再次达到所述第一时间阈值后再次开放该cookie队列并提取下一个队首的抢单请求。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过根据接收到的抢单请求中的终端标识在cookie列表中设置cookie队列,来对相同终端标识的抢单请求进行排队,并通过cookie计时器的计时来开放cookie队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
图4为本发明实施例的另一用于防止机器人抢单的装置的结构示意图,如图4所示,所述装置包括:第一接收模块10、第一存储模块11、第一提取模块12、第二存储模块13、和第二提取模块14,其中:
所述第一提取模块12还用于则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给第二存储模块;所述第二存储模块13用于根据用户标识,将接收到的每个抢单请求保存到相对应的session队列中,其中所述session队列与所述用户标识一一对应,每个session队列都包括一个session计时器;所述第二提取模块14用于监测每个session计时器是否到达预设的第二时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器。具体地:
通过上述实施例中第一提取模块12会根据每个cookie队列的cookie计时器将从各个cookie队列中提取到的队首抢单请求,直接发送给第二存储模块13。
所述第二存储模块13会对接收到的每个抢单请求先提取到其中的用户标识,然后在存储的session列表中大量的session队列中查找是否存在与所述用户标识相对应的session队列,即与该session队列中的所有抢单请求的用户标识相同。若找到相对应的session队列,则将所述抢单请求存入所述session队列中。如此,所述第二存储模块13也就将所有包含相同用户标识的抢单请求存入到了同一个session队列中。所述session列表中的session队列数量也就表示发送该session列表中所有的抢单请求的用户的数量。
进一步地,若所述第二存储模块13根据用户标识,没有找到与所述抢单请求相对应的session队列,则创建与所述用户标识一一对应的session队列所述session队列的session计时器,并将所述抢单请求存入新建的session队列中。
如果所述第二存储模块13没有在所述session列表中找到与接收到的抢单请求相对应的session队列,则说明所述session列表中不存在包含相同用户标识的抢单请求。此时就需要在session列表中创建一条与所述用户标识相对应的session队列,同时在该新建的session队列中创建一个session计时器。随即将接收到的相对应的抢单请求存入到新创建的session队列中,同时该session讲时器开始计时。
所述第二提取模块14会定期或者不间断得监测每一个session计时器的计时,并均与所述第二提取模块14预先设置的第二时间阈值进行比对,当其中有session计时器的计时达到该第二时间阈值时,所述第二提取模块14就会将该session计时器所在的session队列开放,并提取出该session队列的队首的抢单请求,并将提取出抢单请求发送给抢单应用来具体执行抢单操作。
所述第二提取模块14在提取出session队列的队首后,会查看该session队列是否还存在其它抢单请求。如果该session队列为空,则可以从所述session列表中删除该session队列;而如果该session队列还存在其它抢单请求,则需要重置该session队列中的session计时器,以待session计时器的计时达到所述第二时间阈值后再次开放该session队列并提取下一个session队首。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过根据接收到的抢单请求中的用户标识在session列表中设置session队列,来对相同用户标识的抢单请求进行排队,并通过session计时器的计时来开放session队列,从而更加简单方便得防止了机器人刷单的行为,让使用机器人的用户与普通用户拥有相同的抢单概率。
图5为本发明实施例的电子设备结构示意图。如图5所示,所述电子设备,包括:处理器(processor)601、存储器(memory)602和总线603;
其中,所述处理器601和所述存储器602通过所述总线603完成相互间的通信;
所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种防止机器人抢单的方法,其特征在于,包括:
第一服务器接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
所述第一服务器根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
2.根据权利要求1所述的方法,其特征在于,所述抢单请求还包括用户标识,相应地,所述提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,具体为:
提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给第二服务器;相应地,所述方法还包括:
所述第二服务器根据用户标识,将接收到的每个抢单请求保存到相对应的session队列中,其中所述session队列与所述用户标识一一对应,每个session队列都包括一个session计时器;
所述第二服务器监测每个session计时器是否到达预设的第二时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一服务器根据终端标识,没有找到与所述抢单请求相对应的cookie队列,则创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,并将所述抢单请求存入新创建的cookie队列中。
4.根据权利要求3所述的方法,其特征在于,所述创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,具体为:
创建与所述终端标识一一对应的cookie队列和所述cookie队列的cookie计时器,同时在预设的第一时间范围内随机设定所述cookie计时器的cookie时间阈值;相应地,所述第一服务器监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器,具体为:
所述第一服务器监测每个cookie计时器是否到达每个cookie计时器的cookie时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器,同时重新在所述第一时间范围内随机设定所述cookie计时器的cookie时间阈值。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第二服务器根据用户标识,没有找到与所述抢单请求相对应的session队列,则创建与所述用户标识一一对应的session队列和所述session队列的session计时器,并将所述抢单请求存入新建的session队列中。
6.根据权利要求5所述的方法,其特征在于,所述创建与所述用户标识一一对应的session队列和所述session队列的session计时器,具体为:
创建与所述用户标识一一对应的session队列和所述session队列的session计时器,同时在预设的第二时间范围内随机设定所述session计时器的session时间阈值;相应地,所述第二服务器监测每个session计时器是否到达预设的第二时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器,具体为:
所述第二服务器监测每个session计时器是否到达每个session计时器的session时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器,同时重新在所述第二时间范围内随机设定所述session计时器的session时间阈值。
7.一种用于防止机器人抢单的装置,其特征在于,包括:
第一接收模块,用于接收由所有终端发送的抢单请求,其中所述抢单请求至少包括所述终端的终端标识;
第一存储模块,用于根据终端标识,将每个抢单请求保存到相对应的cookie队列中,其中所述cookie队列与所述抢单请求的终端标识一一对应,每个cookie队列都包括一个cookie计时器;
第一提取模块,用于监测每个cookie计时器是否到达预设的第一时间阈值,如果到达,则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给抢单模块,并重置所述cookie计时器。
8.根据权利要求7所述的装置,其特征在于,所述抢单请求还包括用户标识,相应地,所述第一提取模块还用于则提取出所述cookie计时器所在的cookie队列中最早存入的抢单请求并发送给第二存储模块;相应地,所述装置还包括:
所述第二存储模块,用于根据用户标识,将接收到的每个抢单请求保存到相对应的session队列中,其中所述session队列与所述用户标识一一对应,每个session队列都包括一个session计时器;
第二提取模块,用于监测每个session计时器是否到达预设的第二时间阈值,如果到达,则提取出所述session计时器所在session队列中最早存入的抢单请求并发送给抢单模块,并重置所述session计时器。
9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一所述的方法。
CN201711433111.1A 2017-12-26 2017-12-26 一种防止机器人抢单的方法及装置 Active CN109960596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711433111.1A CN109960596B (zh) 2017-12-26 2017-12-26 一种防止机器人抢单的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711433111.1A CN109960596B (zh) 2017-12-26 2017-12-26 一种防止机器人抢单的方法及装置

Publications (2)

Publication Number Publication Date
CN109960596A CN109960596A (zh) 2019-07-02
CN109960596B true CN109960596B (zh) 2021-04-02

Family

ID=67022197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711433111.1A Active CN109960596B (zh) 2017-12-26 2017-12-26 一种防止机器人抢单的方法及装置

Country Status (1)

Country Link
CN (1) CN109960596B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344948A (zh) * 2007-07-12 2009-01-14 纬创资通股份有限公司 管理购物网站的方法
CN101567002A (zh) * 2009-05-25 2009-10-28 北京中企开源信息技术有限公司 一种实时数据存储的方法和系统
CN104954468A (zh) * 2015-06-18 2015-09-30 小米科技有限责任公司 资源的分配方法及装置
CN106157041A (zh) * 2016-07-26 2016-11-23 上海携程商务有限公司 防止刷单的方法
CN106548390A (zh) * 2016-10-18 2017-03-29 浙江仟和网络科技有限公司 一种刷单检测方法及其系统
CN106875226A (zh) * 2017-02-24 2017-06-20 湖南安良信息科技有限公司 一种抢购行为监控方法及系统
CN106997546A (zh) * 2016-01-26 2017-08-01 中国移动通信集团安徽有限公司 一种订单处理方法及装置
CN107451826A (zh) * 2017-08-10 2017-12-08 中国民航信息网络股份有限公司 电子客票的销售控制方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003054822A1 (fr) * 2001-12-13 2003-07-03 The Japan Research Institute, Limited Appareil et procede de reglement, chariot de supermarche, et programme incitant l'ordinateur a executer ce procede

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344948A (zh) * 2007-07-12 2009-01-14 纬创资通股份有限公司 管理购物网站的方法
CN101567002A (zh) * 2009-05-25 2009-10-28 北京中企开源信息技术有限公司 一种实时数据存储的方法和系统
CN104954468A (zh) * 2015-06-18 2015-09-30 小米科技有限责任公司 资源的分配方法及装置
CN106997546A (zh) * 2016-01-26 2017-08-01 中国移动通信集团安徽有限公司 一种订单处理方法及装置
CN106157041A (zh) * 2016-07-26 2016-11-23 上海携程商务有限公司 防止刷单的方法
CN106548390A (zh) * 2016-10-18 2017-03-29 浙江仟和网络科技有限公司 一种刷单检测方法及其系统
CN106875226A (zh) * 2017-02-24 2017-06-20 湖南安良信息科技有限公司 一种抢购行为监控方法及系统
CN107451826A (zh) * 2017-08-10 2017-12-08 中国民航信息网络股份有限公司 电子客票的销售控制方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
营销活动平台的设计与实现;林倩茹;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170615;I138-676 *

Also Published As

Publication number Publication date
CN109960596A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
US8976676B2 (en) Adaptive signaling for network performance measurement, access, and control
CN110611723A (zh) 一种服务资源的调度方法及装置
CN108052824B (zh) 一种风险防控方法、装置及电子设备
Liu et al. A decentralized cloud firewall framework with resources provisioning cost optimization
CN104753907A (zh) 基于即时通信或社交应用的数据处理方法和装置
CN112370793B (zh) 用户账号的风险控制方法及装置
US11882194B2 (en) Adaptive signaling for network performance measurement, access, and control
US10033612B2 (en) Adaptive signaling for network performance measurement, access, and control
CN110120928A (zh) 一种身份认证的方法、装置、服务器及计算机可读介质
CN110365712A (zh) 一种分布式拒绝服务攻击的防御方法及系统
CN107634850A (zh) 一种应用状态获取方法及其设备、存储介质、服务器
CN109800571A (zh) 事件处理方法和装置、以及存储介质和电子装置
CN108924159A (zh) 一种报文特征识别库的验证方法与装置
CN113680074B (zh) 业务信息的推送方法、装置、电子设备及可读介质
CN107612882B (zh) 一种基于中间日志的用户行为识别方法及装置
CN109960596B (zh) 一种防止机器人抢单的方法及装置
Liu et al. A clusterized firewall framework for cloud computing
CN112399352B (zh) 作弊行为识别方法、设备及存储介质
CN106971296A (zh) 一种处理信息对象的方法、电子设备和存储介质
CN106156650B (zh) 数据保护系统及方法
CN110113721A (zh) 一种消息管理方法及装置
CN107317790B (zh) 网络行为的监控方法及装置
CN110099051B (zh) 卡顿风险的检测方法、装置及电子设备
CN109617893A (zh) 一种僵尸网络DDoS攻击的防护方法、装置及存储介质
CN110113312A (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