批量发券方法及装置与流程

文档序号:23056884发布日期:2020-11-25 17:36阅读:243来源:国知局
批量发券方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种批量发券方法及装置。



背景技术:

在银行的权益系统里,需要给特定的客户(如待发薪客户)赠送定向优惠券,而每类优惠券会有一定预算限制设定领取上限。在批量发券时受到这些限制因素的控制,若用单线程的方式实现,则发券速度慢,效率较低;若用多线程方式实现虽然能解决发券效率低的问题,同时也会遇到另一类问题,多线程同时批量发多张同种类型的优惠券时,会导致此优惠券的领取上限无法控制住,最终超出业务预算,对客户超额发券。



技术实现要素:

本发明实施例提供一种批量发券方法,用以在保证高效率发券的同时,避免发券超出业务预算,从而对客户进行超额发券,该方法包括:

通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据;

根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理;

当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限。

可选的,所述方法还包括:

当第一预设线程中有多条数据对同一类型的待发优惠券数据进行发券处理时,待所述第一预设线程中的同一类型的待发优惠券数据全部处理完后,释放对所述优惠券剩余信息的操作权限。

可选的,释放对所述优惠券剩余信息的操作权限之后,所述方法还包括:

将所述第一预设线程弹出队列,并使所述队列中排在所述第一预设线下一位的线程获取对所述优惠券剩余信息的操作权限。

可选的,所述方法还包括:

每隔预设时长,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

本发明实施例还提供一种批量发券装置,用以在保证高效率发券的同时,避免发券超出业务预算,从而对客户进行超额发券,该装置包括:

数据配置模块,用于通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据;

发券处理模块,用于根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理;

操作权限获取模块,用于当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限。

可选的,所述装置还包括:

操作权限释放模块,用于当第一预设线程中有多条数据对同一类型的待发优惠券数据进行发券处理时,待所述第一预设线程中的同一类型的待发优惠券数据全部处理完后,释放对所述优惠券剩余信息的操作权限。

可选的,所述装置还包括:

操作权限处理模块,用于将所述第一预设线程弹出队列,并使所述队列中排在所述第一预设线下一位的线程获取对所述优惠券剩余信息的操作权限。

可选的,所述装置还包括:

数据同步模块,用于每隔预设时长,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明实施例中,通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据,并根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理,当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限,在保证高效率发券的同时,避免发券超出业务预算,从而对客户进行超额发券。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中批量发券方法的流程图;

图2为本发明实施例中批量发券装置的结构示意图;

图3为本发明实施例中排队获取对优惠券剩余信息的操作权限的具体示例图;

图4为本发明实施例中多条数据对同一类优惠券进行访问的流程示例图;

图5为本发明实施例中多个线程间获取和释放操作优惠券剩余信息操作权限的具体示例图;

图6是本发明实施例计算机设备示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在银行的权益系统里,需要给特定的客户(如待发薪客户)赠送定向优惠券,而每类优惠券会有一定预算限制设定领取上限。在批量发券时受到这些限制因素的控制,若用单线程的方式实现,则发券速度慢,效率较低;若用多线程方式实现虽然能解决发券效率低的问题,同时也会遇到另一类问题,多线程同时批量发多张同种类型的优惠券时,会导致此优惠券的领取上限无法控制住,最终超出业务预算,对客户超额发券。为了解决上述问题,本发明实施例提供了一种批量发券方法。

图1为本发明实施例提供的一种批量发券方法的流程图,如图1所示,该方法包括:

步骤101、通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据。

具体实施时,当业务计划推广某种类型的优惠券,需在原始数据库中建立待发优惠券数据,设置优惠券的各种限制,其中包含了优惠券的名额上限。当建立待发优惠券数据成功后,将优惠券剩余名额字段同步至缓存数据库中,后续领券时只从缓存数据库提取优惠券剩余名额数据进行扣减即可。

在实施例中,多线程利用线程池管理,可以通过配置文件配置线程数量、存活期等参数。

步骤102、根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理。

具体实施时,在待发优惠券数据建立成功后,业务可以通过上传大批量白名单客户领券文件的方式给特定客户定向发券。白名单客户领券文件上传至原始数据库后,系统通过多线程处理此文件,每个线程获取领券文件的数据分块,逐条处理分块里的待发优惠券数据。

步骤103、当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限。

具体实施时,如图3所示,当多个线程中的每个线程处理待发优惠券数据时,需获取优惠券的剩余名额的热点数据,即优惠券剩余信息。而热点数据是可能被多个线程并行访问的,因此需要操作优惠券剩余名额时,则需以先进先出的方式排队获取剩余名额的操作锁权限,即操作权限,当最顶端的线程获取到操作此热点数据的权限时,扣减剩余名额,更新缓存中的剩余名额,如果剩余名额已经为0则不可继续更新拒绝该客户的领券业务。

由图1可知,本发明实施例提供的一种批量发券方法,通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据,并根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理,当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限,在保证高效率发券的同时,避免发券超出业务预算,从而对客户进行超额发券。

为了降低资源消耗,所述方法还包括:

当第一预设线程中有多条数据对同一类型的待发优惠券数据进行发券处理时,待所述第一预设线程中的同一类型的待发优惠券数据全部处理完后,释放对所述优惠券剩余信息的操作权限。

具体实施时,如图4所示,当每个线程如果存在多条数据需对同一种优惠券的剩余名额进行访问时,可以在线程中给访问同一种优惠券的剩余名额的操作设置了计数器,如果计数器大于零,则线程将一直有对剩余名额热点数据的锁权限,直到计数器等于零后才可继续下一步操作。如此,保证了该线程可独占锁,一旦线程业务处理结束后立即进行权限释放。

进一步地,释放对所述优惠券剩余信息的操作权限之后,所述方法还包括:

将所述第一预设线程弹出队列,并使所述队列中排在所述第一预设线下一位的线程获取对所述优惠券剩余信息的操作权限。

具体实施时,如图5所示,当线程对剩余名额扣减成功并且计数器归零后,则可释放优惠券剩余名额的操作锁权限,同时该线程弹出队列,下一个排队线程成为最顶端的线程,则继续获取优惠券剩余名额的操作锁权限,即操作权限。

为了保证缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据保持一致,所述方法还包括:

每隔预设时长,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

具体实施时,举例来说,可以每隔10秒,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

下面以一具体实施例对本发明进行说明:

将待发优惠券数据配置在线程1、线程2和线程3中进行多线程处理,其中,线程1中包括a类优惠券和b类优惠券,线程2中包含多个b类优惠券,线程3中包含多个c类优惠券。在进行发券处理作业时,线程1对其中的a类优惠券进行处理,线程2对其中的b类优惠券进行处理,线程3对其中的c类优惠券进行处理,在此过程中,以先进先出的方式排队的方式进行优惠券的发券处理,获取优惠券剩余信息的操作权限。当线程1将其中的a类优惠券全部处理完毕后,将其中的b类优惠券放在线程2的b类优惠券之后进行处理。在处理线程2中的多个b类优惠券时,顺次对线程2中的多条b类待发优惠券数据进行处理,直至将其中的b类待发优惠券数据全部处理完毕后,再对线程3进行同样的处理。在此过程中,随着待发优惠券数据的处理,缓存数据库中的不同类型的优惠券剩余信息也要随之进行消减,并每隔预设时长,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

基于同一发明构思,本发明实施例中还提供了一种批量发券装置,如下面的实施例所述。由于批量发券装置解决问题的原理与批量发券方法相似,因此,批量发券装置的实施可以参见批量发券方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2为本发明实施例提供的一种批量发券装置的结构示意图,如图2所示,该装置包括:

数据配置模块201,用于通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据;

发券处理模块202,用于根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理;

操作权限获取模块203,用于当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限。

在本发明实施例中,所述装置还包括:

操作权限释放模块,用于当第一预设线程中有多条数据对同一类型的待发优惠券数据进行发券处理时,待所述第一预设线程中的同一类型的待发优惠券数据全部处理完后,释放对所述优惠券剩余信息的操作权限。

在本发明实施例中,所述装置还包括:

操作权限处理模块,用于将所述第一预设线程弹出队列,并使所述队列中排在所述第一预设线下一位的线程获取对所述优惠券剩余信息的操作权限。

在本发明实施例中,所述装置还包括:

数据同步模块,用于每隔预设时长,将缓存数据库中的不同类型的优惠券剩余信息与原始数据库中的待发优惠券数据进行同步处理。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图6所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。

处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

综上所述,本发明通过线程池的方式为原始数据库中的多个线程配置待发优惠券数据,并根据存储在缓存数据库中的不同类型的优惠券剩余信息,对多个线程中的待发优惠券数据进行发券处理,当所述优惠券剩余信息被多个线程同时访问时,以排队的方式获取对所述优惠券剩余信息的操作权限,在保证高效率发券的同时,避免发券超出业务预算,从而对客户进行超额发券。

此外,本发明对于大数据文件上传需要并发处理热点数据时,金融系统对热点数据的准确度要求高,此方案可确保多线程并发时热点数据操作的一致性;此方案使用于对数据准确度要求高同时也能保证资源利用率和性能的情况。同时,在本发明中实现了同一个线程多次处理可重入的情况,避免了同一线程重复排队多此获取锁释放锁增加资源消耗,并能解决可能会出现两个线程对两个数据同时获取锁又同时等待对方释放锁出现进行循环等待的情况。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1