具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1与图2,图1为本申请实施例提供的业务数据处理方法的一个流程示意图,图2为本申请实施例提供的业务数据处理方法的预设秒杀活动示例中业务数据处理方法的示意图。如图1与图2所示,该方法包括以下步骤S11-S18:
S11、获取系统的第一当前时间及预设线上活动的预设线上活动时间,并判断所述第一当前时间与所述预设线上活动时间之间的时间间隔是否小于或者等于预设时间间隔阈值。
其中,线上活动,包括商品抢购活动及会员权益秒杀活动。
具体地,针对线上活动,例如会员权益秒杀活动,请继续参阅图2,针对参与秒杀活动的用户会提前进入所述预设秒杀活动的秒杀活动页面,如图2所示的预设秒杀活动的福利页,进行参与秒杀活动的准备,例如,针对在每周一早上10点给用户按照用户等级发送话费、积分、京东卡等福利的福利秒杀活动,用户一般会早于10点进入福利秒杀活动的福利页面选择相对应的福利,以提前准备好参与秒杀活动。因此,可以在预设秒杀活动的预设秒杀活动时间前的预设时间范围内,监测用户是否进行了参与秒杀活动的准备,例如监测用户是否打开并浏览了福利秒杀活动的福利页面,首先需要判断是否达到了对用户进行监测的预设时间范围内,可以获取系统的第一当前时间及预设秒杀活动的预设秒杀活动时间,并判断所述第一当前时间与所述预设秒杀活动时间之间的时间间隔是否小于或者等于预设时间间隔阈值,若所述时间间隔小于或者等于预设时间间隔阈值,开始启动对参与预设秒杀活动的用户进行监测,若所述时间间隔大于预设时间间隔阈值,不启动对参与预设秒杀活动的用户进行监测。例如,针对上述周一早上10点的福利秒杀活动,需要在每周一早上10点前,判断系统的第一当前时间距离早上10点是否处于了预设时间间隔阈值范围内,例如,预设距离早上10点前30分钟开始监测参与福利秒杀活动的用户,则在早上9点半开始监测参与福利秒杀活动的用户。
S12、若所述时间间隔小于或者等于预设时间间隔阈值,监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面;
S16、若所述时间间隔大于预设时间间隔阈值,不监测所述在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面。
具体地,用户参与预设线上活动,除了距离所述预设线上活动时间对应的时间因素外,还需要在线账户对应的用户打开所述预设线上活动的相关页面,例如,针对会员权益秒杀活动,用户参与预设秒杀活动,除了距离所述预设秒杀活动时间对应的时间因素外,还需要在线账户对应的用户打开所述预设秒杀活动的相关页面,因此,若所述时间间隔小于或者等于预设时间间隔阈值,可以通过监测所述在线账户对应的用户在所登录的客户端上浏览页面的页面浏览轨迹,来实现监测所述在线账户对应的用户在所述客户端是否打开了所述预设秒杀活动对应的第一预设秒杀活动页面,所述第一预设秒杀活动页面可以为所述预设秒杀活动的首页,例如,图2中上述预设福利秒杀活动的福利页,可以通过监测所述在线账户对应的用户所登录的客户端是否加载了所述第一预设秒杀活动页面的页面内容,来监测所述在线账户对应的用户在所述客户端上是否打开了所述第一预设秒杀活动页面,若所述客户端加载了所述第一预设秒杀活动页面的页面内容,判断所述在线账户对应的用户打开了所述第一预设秒杀活动页面,若所述客户端未加载所述第一预设秒杀活动页面的页面内容,判断所述在线账户对应的用户未打开所述第一预设秒杀活动页面。例如,请继续参阅图2,如图2所示,针对福利秒杀活动,需要用户打开所述福利页,这样的用户才可能会参与福利秒杀活动,因此,若所述时间间隔小于或者等于预设时间间隔阈值,针对登录APP的在线用户,可以监测在线账户对应的在线用户在所登录的客户端上的页面浏览轨迹,并监测所述在线账户对应的用户是否打开了第一预设秒杀活动页面,若所述在线账户对应的用户打开了所述第一预设秒杀活动页面,表明所述在线账户对应的用户可能会参与所述预设秒杀活动,若所述在线账户未打开所述第一预设秒杀活动页面,表明所述在线账户对应的用户不会参与所述预设秒杀活动。
进一步地,所述监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面的步骤包括:
基于预设监测方式,监测所述客户端是否加载了所述第一预设线上活动页面的页面内容。
具体地,针对预设线上活动,例如,针对预设秒杀活动,可以监测所述在线账户对应的用户在所述客户端是否打开了所述预设秒杀活动对应的第一预设秒杀活动页面,可以通过监测所述客户端是否加载了所述第一预设秒杀活动页面的页面内容来判断,若所述客户端加载了所述第一预设秒杀活动页面的页面内容,判定所述在线账户对应的用户打开了所述第一预设秒杀活动页面,若所述客户端未加载所述第一预设秒杀活动页面的页面内容,判定所述在线账户对应的用户未打开所述预设秒杀活动的第一预设秒杀活动页面。其中,监测所述客户端是否加载了所述第一预设秒杀活动页面的页面内容,可以通过监测服务器端对应的流量变化来监测,也可以通过判断是否接收到了所述客户端发送的加载所述第一预设秒杀活动页面的页面内容的页面数据请求。
更进一步地,请参阅图3,图3为本申请实施例提供的业务数据处理方法的第一个子流程示意图,如图3所示,在该实施例中,所述基于预设监测方式,监测所述客户端是否加载了所述第一预设线上活动页面的页面内容的步骤包括:
S121、判断是否接收到所述客户端的页面数据请求,所述页面数据请求包含所述第一预设线上活动页面对应的第一IP地址;
S122、若接收到所述页面数据请求,判定所述客户端加载了所述第一预设线上活动页面的页面内容;
S123、若未接收到所述页面数据请求,判定所述客户端未加载所述第一预设线上活动页面的页面内容。
具体地,针对线上活动,例如针对预设秒杀活动,可以监测所述在线账户对应的用户在所述客户端是否打开了所述预设秒杀活动的第一预设秒杀活动页面,可以通过监测所述客户端是否加载了所述第一预设秒杀活动页面的页面内容。若用户打开了所述第一预设秒杀活动页面,所述客户端会向后端服务器发送所述第一预设秒杀活动页面的页面内容对应的页面数据请求,所述页面数据请求会通过所述第一预设秒杀活动页面对应的第一IP地址,来加载所述第一预设秒杀活动页面的页面内容对应的页面数据,因此,服务器端可以判断是否接收到了所述客户端的页面数据请求,所述页面数据请求包含所述第一预设秒杀活动页面对应的第一IP地址,以判断所述客户端的用户是否打开了所述第一预设秒杀活动页面。若服务器端接收到所述页面数据请求,判定所述客户端加载所述第一预设秒杀活动页面的页面内容,所述在线账户对应的用户在所述客户端打开了所述第一预设秒杀活动页面,若服务器端未接收到所述页面数据请求,判定所述客户端未加载所述第一预设秒杀活动页面的页面内容,所述在线账户对应的用户在所述客户端未打开所述第一预设秒杀活动页面。
S13、若所述在线账户对应的用户打开了所述第一预设线上活动页面,加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存;
S17、若所述在线账户对应的用户未打开所述第一预设线上活动页面,不加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据。
具体地,针对线上活动,例如针对预设秒杀活动,虽然预设秒杀活动的开始时间限定在固定时刻,用户同时参与所述预设秒杀活动,但是用户进入所述预设秒杀活动的第一预设秒杀活动页面的时间不是集中同时进入的,是分散进入所述第一预设秒杀活动页面的。因此,针对参与预设秒杀活动的大量用户造成的高并发量,为了避免预设秒杀活动开始时,针对高并发量,由于远程连接不足与数据库连接不足造成的系统卡顿问题,可以在用户进入所述第一预设秒杀活动页面时,加载所述在线账户对应的用户参与所述预设秒杀活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存,所述预设缓存可以为Redis缓存。例如,请继续参阅图2,针对上述预设福利秒杀活动,用户在参与活动领取福利时,虽然10点的时候,同时点击领取福利造成很大的并发量,同时会有大量的请求做远程调用,但之前用户都会先打开领取福利页才能点击领取,而进入领取福利页调用在时间维度上是比较分散的,有些用户在开抢前十几分钟就进入等着了,所以可以在用户进入预设福利秒杀活动的福利页时,可以基于异步加载,发送异步加载消息,通过预设异步消息队列mq-app处理异步消息,通过调用相关系统,以从相关系统调取用户的相关信息,并将将根据异步消息得到的预设用户信息数据写入预设Redis缓存,从而预加载些用户参与福利秒杀活动的必要的信息到Redis缓存,这样到真正抢购的时候直接到Redis缓存读取相应信息即可。
进一步地,所述加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存的步骤之前,还包括:
若所述在线账户对应的用户打开了所述第一预设线上活动页面,监测所述在线账户对应的用户是否浏览了所述第一预设线上活动页面。
具体地,针对线上活动,例如针对预设秒杀活动,参与预设秒杀活动的用户,不但要打开所述第一预设秒杀活动页面,而且要浏览所述第一预设秒杀活动页面,才表明用户真正的可能参与所述预设秒杀活动,因此,若所述在线账户对用的用户在所述客户端打开了所述第一预设秒杀活动页面,还可以进一步地监测所述在线账户对应的用户是否浏览了所述第一预设秒杀活动页面,若所述在线账户对应的用户浏览了所述第一预设秒杀活动页面,可以进一步判定所述在线账户对应的用户极大可能参与所述预设秒杀活动,再加载所述在线账户对应的用户参与所述预设秒杀活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存,若所述在线账户对应的用户打开了所述第一预设秒杀活动页面,但很快关闭了所述第一预设秒杀活动页面,未浏览所述第一预设秒杀活动页面,可以进一步判定所述用户很可能不参与所述预设秒杀活动,无需加载所述在线账户对应的用户参与所述预设秒杀活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存,可以节省处理业务数据的资源,提高处理业务数据的效率。
其中,监测所述在线账户对应的用户是否浏览了所述第一预设秒杀活动页面,若所述第一预设秒杀活动页面包含下级子页面,可以通过判断所述用户是否打开了所述下级子页面进行监测,也可以通过判断所述用户在所述第一预设秒杀活动页面上停留对应的停留时间,若所述用户打开了所述下级子页面,或者若所述用户在所述第一预设秒杀活动页面上的停留时间较长,可以判断所述在线账户对应的用户浏览了所述第一预设秒杀活动页面,若所述用户未打开所述下级子页面,或者若所述用户在所述第一预设秒杀活动页面上的停留时间较短,可以判断所述在线账户对应的用户未浏览所述第一预设秒杀活动页面。
更进一步地,请参阅图4,图4为本申请实施例提供的业务数据处理方法的第二个子流程示意图,如图4所示,在该实施例中,所述若所述在线账户对应的用户打开了所述第一预设线上活动页面,监测所述在线账户对应的用户是否浏览了所述第一预设线上活动页面的步骤包括:
S131、若所述在线账户对应的用户打开了所述第一预设线上活动页面,统计所述在线账户对应的用户在所述第一预设线上活动页面停留对应的停留时间,并判断所述停留时间是否大于或者等于第一预设时长阈值;
S132、若所述停留时间大于或者等于第一预设时长阈值,判定所述在线账户对应的用户浏览了所述第一预设线上活动页面;
S133、若所述停留时间小于第一预设时长阈值,判定所述在线账户对应的用户未浏览所述第一预设线上活动页面。
具体地,针对线上活动,例如针对预设秒杀活动,监测所述在线账户对应的用户是否浏览了所述第一预设秒杀活动页面,可以通过在所述用户打开所述第一预设秒杀活动页面后,在所述第一预设秒杀活动页面上停留的停留时间长短,来判断所述用户是否有意向参与所述预设秒杀活动。若所述客户端加载所述页面内容,判断所述客户端打开了所述第一预设秒杀活动页面,再统计所述在线账户对应的用户在所述第一预设秒杀活动页面上停留的停留时间,并判断所述停留时间是否大于或者等于第一预设时长阈值,若所述停留时间大于或者等于第一预设时长阈值,判定所述在线账户对应的用户浏览了所述第一预设秒杀活动页面,判断所述用户有意向参与所述预设秒杀活动,若所述停留时间小于第一预设时长阈值,判定所述在线账户对应的用户未认真浏览所述第一预设秒杀活动页面,判断所述用户没有意向参与所述预设秒杀活动。例如,请继续参阅图2,针对上述福利秒杀活动,若所述用户虽然打开了所述福利页,但仅在所述福利页上停留了1秒或者2秒,这种情况,所述用户参与所述福利秒杀活动的可能性极低,可以判断所述用户不会参与所述预设福利秒杀活动,相反,若所述用户在所述福利页上停留了3分钟、5分钟设置更长时间,这种情况,所述用户参与所述福利秒杀活动的可能性极高,可以判断所述用户会参与所述预设福利秒杀活动。
进一步地,请参阅图5,图5为本申请实施例提供的业务数据处理方法的第三个子流程示意图,如图5所示,在该实施例中,所述加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存的步骤包括:
S134、基于异步加载,发送所述预设用户信息数据对应的异步请求消息至预设异步消息队列,以使所述预设异步消息队列处理所述异步请求消息,以通过远程调用获取所述异步请求消息对应的请求数据;
S135、根据所述请求数据,获取所述预设用户信息数据,并将所述预设用户信息数据存储至预设缓存。
具体地,针对线上活动,例如针对预设秒杀活动,为了避免集中秒杀带来的高并发量造成的系统卡顿问题,将参与秒杀活动的用户的相关必要信息对应的预设用户信息数据,在用户进入所述第一预设秒杀活动页面后,进行秒杀前进行加载。为了进一步避免预设秒杀活动前相对集中的进入所述第一预设秒杀活动页面时,较为集中的加载所述预设用户信息数据造成的打开所述第一预设秒杀活动页面慢的问题,可以在加载所述预设用户信息数据时,不进行实时的同步加载,采用异步加载机制,用户在进入所述第一预设秒杀活动页面后,进行秒杀前,基于异步加载,仅发送所述预设用户信息数据对应的异步请求消息至预设异步消息队列,以使所述预设异步消息队列处理所述异步请求消息,并通过远程调用,向相关系统获取所述异步请求消息对应的请求数据,从相关系统获取所述请求数据后,再消费所述请求数据,即根据所述请求数据,获取所述预设用户信息数据,既可以直接将所述请求数据作为所述预设用户信息数据,也可以为根据所述请求数据,进行预设处理与预设计算后得到计算结果,并将计算结果作为所述预设用户信息数据,并将所述请求数据存储至预设缓存,可以将所述预设用户信息数据的加载进一步分散,从而避免同时集中加载所述预设用户信息数据造成的系统卡顿问题。例如,针对上述福利秒杀活动,针对参与福利秒杀活动的用户进行资格校验以确定用户是否能够参与福利秒杀时,会涉及到对用户是否属于黑名单、是否三合一及是否授权的校验,针对分析是否属于黑名单、是否三合一及是否授权是可以不用在福利秒杀活动的福利页及进行秒杀的抢购页校验,仅在用户在抢购页点击立即领取时进行校验即可,但如果在查看福利页就同步加载这些校验到缓存的话,又会造成打开福利页及抢购页面慢的问题,可以用异步加载的机制,用户打开福利页时,不实时的远程调用,而是向预设异步消息队列MQ-app发送一个异步请求消息,然后再消费这个消息来做远程调用,通过异步调用处理异步请求消息,并得到异步请求消息对应的请求数据,然后再根据请求数据,把相关校验结果存储在Redis缓存中,这样接下来用户在10点在抢购页点击领取的时候就可以直接在缓存里读校验结果,同时因为是异步请求,用户进入福利查,看福利页面时,只是发送个异步请求消息,也不会影响福利页的加载速度,同时通过异步消息也有削峰的作用,不会同时有大量并发请求打在下游系统上,减轻下游系统的压力,实践证明,这样异步加载所述预设用户信息数据的方式,能够使加载福利页的95线由120ms减少到30ms左右,解决了高并发量及远程调用链接不足的问题。
S14、获取所述系统的第二当前时间,并判断所述第二当前时间是否达到所述预设线上活动时间,及判断是否接收到所述在线账户对应的用户参与所述预设线上活动的参与指令;
S15、若所述第二当前时间达到所述预设线上活动时间,并接收到所述参与指令,从所述预设缓存中获取所述预设用户信息数据,并根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果;
S18、若所述第二当前时间未达到所述预设线上活动时间,或者未接收到所述参与指令,不从所述预设缓存中获取所述预设用户信息数据。
具体地,针对线上活动,例如针对所述预设秒杀活动,所述预设线上活动时间即为预设秒杀活动时间,若所述在线账户对应的用户确定参与所述预设秒杀活动,会在所述第一预设秒杀活动页面选择参与秒杀的商品,所述商品包含产品及服务等内容,并在所述预设秒杀活动开始的预设秒杀时间点击参与操作,参与所述预设秒杀活动,相对应地,后台服务器会会获取所述系统的第二当前时间,并判断所述第二当前时间是否达到所述预设秒杀活动时间,若所述第二当前时间达到所述预设秒杀活动时间,允许所述用户开始所述预设秒杀活动,并判断是否接收到所述用户参与所述预设秒杀活动的参与指令,若接收到所述参与指令,从所述预设缓存中获取所述用户的预设用户信息数据,根据所述预设用户信息数据,判断所述用户是否满足参与所述预设秒杀活动的预设参与条件,以对所述用户参与所述预设秒杀活动的资格进行校验。例如,请继续参阅图2,针对上述预设福利秒杀活动,在用户对福利页的福利进行抢购,点击领取秒杀的福利商品时,需要对用户抢购福利的抢购资格进行校验,例如业务中设置的黑名单校验、三合一认证校验及授权校验等,可以从预设Redis缓存中读取用户的预设用户信息数据,利用读取的所述预设用户信息数据对用户的抢购资格进行校验。若所述用户满足参与所述预设秒杀活动的预设参与条件,即所述用户具备参与所述预设秒杀活动的资格,再判断所述在线账户对应的用户是否成功获取所述预设秒杀活动所提供的商品,若所述用户不满足参与所述预设秒杀活动的预设参与条件,即所述用户不具备参与所述预设秒杀活动的资格,不需要再判断所述在线账户对应的用户是否成功获取所述预设秒杀活动所提供的商品。若所述第二当前时间未达到所述预设秒杀活动时间,不允许所述用户开始进行秒杀活动,或者若所述第二当前时间达到所述预设秒杀活动时间,但未接收到所述参与指令,不从所述预设缓存中获取所述预设用户信息数据。
进一步地,请参阅图6,图6为本申请实施例提供的业务数据处理方法的第四个子流程示意图,如图6所示,在该实施例中,所述根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果的步骤包括:
S151、根据所述预设用户信息数据,判断所述在线账户对应的用户是否满足参与所述预设线上活动的预设参与条件;
S152、若所述在线账户对应的用户不满足所述预设参与条件,判定所述在线账户对应的用户的参与结果为不具备参与所述预设线上活动的资格;
S153、若所述在线账户对应的用户满足所述预设参与条件,判定所述在线账户对应的用户获取所述预设线上活动所提供的商品是否成功。
具体地,针对线上活动,例如针对预设秒杀活动,根据所述预设用户信息数据,判断所述用户是否满足参与所述预设秒杀活动的预设参与条件,以对所述用户参与所述预设秒杀活动的资格进行校验,若所述用户不满足参与所述预设秒杀活动的预设参与条件,例如,请继续参阅图2,针对上述福利秒杀活动,根据从所述预设缓存中获取的基于异步加载的远程调用数据,若针对业务中设置的黑名单校验、三合一认证校验或者授权校验等校验结果,若所述用户对应的校验未通过,即所述用户不具备参与所述预设秒杀活动的资格,不需要再判断所述在线账户对应的用户是否成功获取所述预设秒杀活动所提供的商品,判定所述在线账户对应的用户的参与结果为不具备参与所述预设秒杀活动的资格,并将所述参与结果通知用户,若所述用户满足参与所述预设秒杀活动的预设参与条件,例如,请继续参阅图2,针对上述福利秒杀活动,若用户的黑名单校验、三合一认证校验及授权校验均通过,即所述用户具备参与所述预设秒杀活动的资格,再判断所述在线账户对应的用户是否成功获取所述预设秒杀活动所提供的商品,可以根据所述用户参与所述预设秒杀活动的先后顺序,及所述预设秒杀活动提供商品的商品数量,判断所述用户是否成功参与所述预设秒杀活动,若所述用户参与所述预设秒杀活动的先后顺序对应的排序位置在所提供商品的商品数量范围之内,判断所述在线账户对应的用户成功获取所述预设秒杀活动所提供的商品,确定所述用户成功参与所述预设秒杀活动,并将所述用户成功参与所述预设秒杀活动的参与结果通知用户,若所述用户参与所述预设秒杀活动的先后顺序对应的排序位置不在所提供商品的商品数量范围之内,判断所述用户未成功参与所述预设秒杀活动,并将所述用户未成功参与所述预设秒杀活动的参与结果通知用户,相比传统技术中对用户参与预设秒杀活动的资格进行验证时的远程实时同步调用,本申请实施例能够在秒杀活动的高并发量集中产生时,减轻远程调用的系统压力,提高对用户参与预设秒杀活动资格的验证效率,进而提高秒杀活动的业务数据处理效率,同时能够减轻远程调用中被调用的下游系统的服务压力。
本申请实施例,通过获取系统的第一当前时间及预设线上活动的预设线上活动时间,并判断所述第一当前时间与所述预设线上活动时间之间的时间间隔是否小于或者等于预设时间间隔阈值,若所述时间间隔小于或者等于预设时间间隔阈值,监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动的第一预设线上活动页面,若所述在线账户对应的用户打开了所述第一预设线上活动页面,加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存,获取所述系统的第二当前时间,并判断所述第二当前时间是否达到所述预设线上活动时间,及判断是否接收到所述在线账户对应的用户参与所述预设线上活动的参与指令,若所述第二当前时间达到所述预设线上活动时间,并接收到所述参与指令,从所述预设缓存中获取所述预设用户信息数据,并根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果,通过所述预设线上活动开始前,将所述预设用户信息数据异步加载至预设缓存,解决了所述预设线上活动的页面较为集中加载时的加载速度问题,同时减轻了所述预设线上活动开始时的实时调用远程的调用压力,在预设线上活动产生的大量请求集中进来时,不再出现远程调用连接不足的错误,同时,下游系统的压力也因为异步请求削峰减少了压力,将所述预设用户信息数据请求提前存储在预设缓存中,在用户参与所述预设线上活动时,例如针对预设秒杀活动,可以直接从预设缓存里读取所述预设用户信息数据,减轻了数据库的压力,同时提高了系统的响应速度,从而提高了整个系统的性能与吞吐量,提高了线上活动的业务数据的处理效率。
在一实施例中,所述若所述第二当前时间达到所述预设线上活动时间,并接收到所述参与指令,从所述预设缓存中获取所述预设用户信息数据,并根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果的步骤之前,还包括:
从预设数据库中,获取所述预设线上活动所提供商品的商品库存数据,并将所述商品库存数据存储至所述预设缓存。
具体地,针对线上活动,例如针对预设秒杀活动,传统技术中,在所述预设秒杀活动中,针对所述预设秒杀活动所提供商品的商品库存数据,是通过调用预设数据库将所述商品库存数据进行更新的,例如,在用户参与所述预设秒杀活动成功的情况下,需要将所述商品库存数据进行扣减,在大量并发同时发生的情况下,由于需要频繁的集中调用预设数据库,会造成数据库链接不足,因此,可以在对所述商品库存数据更新前,将所述商品库存数据从所述预设数据库加载至所述预设缓存,在所述预设秒杀活动中,通过所述预设缓存,将所述商品库存数据进行更新,由于预设缓存,尤其Redis缓存对于计数的高并发支持很好,可以极大提高将所述商品库存数据进行更新的效率,避免由于数据库链接不足系统服务问题。例如,针对上述福利秒杀活动,原来扣减福利的福利库存是通过调用数据库实现的,在大量并发的情况下,数据库更新的性能不好,引起请求时间变长,造成数据库链接不足。在福利秒杀活动开抢前,把福利库存数据加载到Reids缓存中,用户抢购时福利商品时,只对Redis缓存进行操作,由于Redis缓存对于计数的高并发支持很好,用户抢购福利成功后,只对数据库进行插入1条抢购成功的操作,数据库对插入的操作可以支持比较高的并发,这样就解决了数据库连接不足的问题,把商品库存数据提前加载到预设缓存中,针对预设秒杀活动进行抢购时,可以直接在预设缓存里扣减库存,不需要再对数据库进行操作,提高了针对库存数据的响应速度,并减轻了数据库压力,从而提高了整个系统的性能与系统的吞吐量,提高了秒杀活动的业务数据的处理效率。
需要说明的是,上述各个实施例所述的业务数据处理方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
请参阅图7,图7为本申请实施例提供的业务数据处理装置的一个示意性框图。对应于上述所述业务数据处理方法,本申请实施例还提供一种业务数据处理装置。如图7所示,该业务数据处理装置包括用于执行上述所述业务数据处理方法的单元,该业务数据处理装置可以被配置于计算机设备中。具体地,请参阅图7,所述业务数据处理装置70包括第一判断单元71、第一监测单元72、缓存单元73、第二判断单元74及第一获取单元75。
其中,第一判断单元71,用于获取系统的第一当前时间及预设线上活动的预设线上活动时间,并判断所述第一当前时间与所述预设线上活动时间之间的时间间隔是否小于或者等于预设时间间隔阈值;
第一监测单元72,用于若所述时间间隔小于或者等于预设时间间隔阈值,监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面;
缓存单元73,用于若所述在线账户对应的用户打开了所述第一预设线上活动页面,加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存;
第二判断单元74,用于获取所述系统的第二当前时间,并判断所述第二当前时间是否达到所述预设线上活动时间,及判断是否接收到所述在线账户对应的用户参与所述预设线上活动的参与指令;
第一获取单元75,用于若所述第二当前时间达到所述预设线上活动时间,并接收到所述参与指令,从所述预设缓存中获取所述预设用户信息数据,并根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果。
在一实施例中,所述第一监测单元72,具体用于基于预设监测方式,监测所述客户端是否加载了所述第一预设线上活动页面的页面内容。
在一实施例中,所述第一监测单元72包括:
第一判断子单元,用于判断是否接收到所述客户端的页面数据请求,所述页面数据请求包含所述第一预设线上活动页面对应的第一IP地址;
第一判定子单元,用于若接收到所述页面数据请求,判定所述客户端加载了所述第一预设线上活动页面的页面内容;
第二判定子单元,用于若未接收到所述页面数据请求,判定所述客户端未加载所述第一预设线上活动页面的页面内容。
在一实施例中,所述所述业务数据处理装置70还包括:
第二监测单元,用于若所述在线账户对应的用户打开了所述第一预设线上活动页面,监测所述在线账户对应的用户是否浏览了所述第一预设线上活动页面。
在一实施例中,所述第二监测单元包括:
第二判断子单元,用于若所述在线账户对应的用户打开了所述第一预设线上活动页面,统计所述在线账户对应的用户在所述第一预设线上活动页面停留对应的停留时间,并判断所述停留时间是否大于或者等于第一预设时长阈值;
第三判定子单元,用于若所述停留时间大于或者等于第一预设时长阈值,判定所述在线账户对应的用户浏览了所述第一预设线上活动页面;
第四判定子单元,用于若所述停留时间小于第一预设时长阈值,判定所述在线账户对应的用户未浏览所述第一预设线上活动页面。
在一实施例中,所述缓存单元73包括:
发送子单元,用于基于异步加载,发送所述预设用户信息数据对应的异步请求消息至预设异步消息队列,以使所述预设异步消息队列处理所述异步请求消息,以通过远程调用获取所述异步请求消息对应的请求数据;
获取子单元,用于根据所述请求数据,获取所述预设用户信息数据,并将所述预设用户信息数据存储至预设缓存。
在一实施例中,所述第一获取单元75包括:
第三判断子单元,用于根据所述预设用户信息数据,判断所述在线账户对应的用户是否满足参与所述预设线上活动的预设参与条件;
第五判定子单元,用于若所述在线账户对应的用户不满足所述预设参与条件,判定所述在线账户对应的用户的参与结果为不具备参与所述预设线上活动的资格;
第六判定子单元,用于若所述在线账户对应的用户满足所述预设参与条件,判定所述在线账户对应的用户获取所述预设线上活动所提供的商品是否成功。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述业务数据处理装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述业务数据处理装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将业务数据处理装置按照需要划分为不同的单元,也可将业务数据处理装置中各单元采取不同的连接顺序和方式,以完成上述业务数据处理装置的全部或部分功能。
上述业务数据处理装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图8,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504,所述存储器也可以为易失性存储介质。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种上述业务数据处理方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种上述业务数据处理方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图8所示实施例一致,在此不再赘述。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:获取系统的第一当前时间及预设线上活动的预设线上活动时间,并判断所述第一当前时间与所述预设线上活动时间之间的时间间隔是否小于或者等于预设时间间隔阈值;若所述时间间隔小于或者等于预设时间间隔阈值,监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面;若所述在线账户对应的用户打开了所述第一预设线上活动页面,加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存;获取所述系统的第二当前时间,并判断所述第二当前时间是否达到所述预设线上活动时间,及判断是否接收到所述在线账户对应的用户参与所述预设线上活动的参与指令;若所述第二当前时间达到所述预设线上活动时间,并接收到所述参与指令,从所述预设缓存中获取所述预设用户信息数据,并根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果。
在一实施例中,所述处理器502在实现所述监测在线账户对应的用户在所登录的客户端上是否打开了所述预设线上活动对应的第一预设线上活动页面的步骤时,具体实现以下步骤:
基于预设监测方式,监测所述客户端是否加载了所述第一预设线上活动页面的页面内容。
在一实施例中,所述处理器502在实现所述基于预设监测方式,监测所述客户端是否加载了所述第一预设线上活动页面的页面内容的步骤时,具体实现以下步骤:
判断是否接收到所述客户端的页面数据请求,所述页面数据请求包含所述第一预设线上活动页面对应的第一IP地址;
若接收到所述页面数据请求,判定所述客户端加载了所述第一预设线上活动页面的页面内容;
若未接收到所述页面数据请求,判定所述客户端未加载所述第一预设线上活动页面的页面内容。
在一实施例中,所述处理器502在实现所述加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存的步骤之前,还实现以下步骤:
若所述在线账户对应的用户打开了所述第一预设线上活动页面,监测所述在线账户对应的用户是否浏览了所述第一预设线上活动页面。
在一实施例中,所述处理器502在实现所述若所述在线账户对应的用户打开了所述第一预设线上活动页面,监测所述在线账户对应的用户是否浏览了所述第一预设线上活动页面的步骤时,具体实现以下步骤:
若所述在线账户对应的用户打开了所述第一预设线上活动页面,统计所述在线账户对应的用户在所述第一预设线上活动页面停留对应的停留时间,并判断所述停留时间是否大于或者等于第一预设时长阈值;
若所述停留时间大于或者等于第一预设时长阈值,判定所述在线账户对应的用户浏览了所述第一预设线上活动页面;
若所述停留时间小于第一预设时长阈值,判定所述在线账户对应的用户未浏览所述第一预设线上活动页面。
在一实施例中,所述处理器502在实现所述加载所述在线账户对应的用户参与所述预设线上活动的预设用户信息数据,并将所述预设用户信息数据存储至预设缓存的步骤时,具体实现以下步骤:
基于异步加载,发送所述预设用户信息数据对应的异步请求消息至预设异步消息队列,以使所述预设异步消息队列处理所述异步请求消息,以通过远程调用获取所述异步请求消息对应的请求数据;
根据所述请求数据,获取所述预设用户信息数据,并将所述预设用户信息数据存储至预设缓存。
在一实施例中,所述处理器502在实现所述根据所述预设用户信息数据,确定所述在线账户对应的用户参与所述预设线上活动对应的参与结果的步骤时,具体实现以下步骤:
根据所述预设用户信息数据,判断所述在线账户对应的用户是否满足参与所述预设线上活动的预设参与条件;
若所述在线账户对应的用户不满足所述预设参与条件,判定所述在线账户对应的用户的参与结果为不具备参与所述预设线上活动的资格;
若所述在线账户对应的用户满足所述预设参与条件,判定所述在线账户对应的用户获取所述预设线上活动所提供的商品是否成功。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessingUnit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的所述业务数据处理方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。