本申请属于高并发场景下异步待处理任务排序,具体涉及一种高并发场景下异步待处理任务智能排序处理方法。
背景技术:
1、电子发票是信息时代的产物,同普通发票一样,采用税务局统一发放的形式给商家使用,发票号码采用全国统一编码,采用统一防伪技术,分配给商家,在电子发票上附有电子税务局的签名机制。发票开票系统指企业在申领增值税发票后,以电子数据的形式对增值税发票进行开具的系统,我国常用的发票开具系统主要包括增值税发票开票软件、增值税税控发票开票软件等系统。
2、发票开具系统,随着需要开具发票的数量增加和客户数量的增加和业务量级的提升,全量请求保持同步响应在高并发下引起的服务器性能的问题,从而造成发票开具效率降低及失败率的提升,甚至造成服务器雪崩宕机的风险。现在方案中在流量突增高并发场景下服务的抗压能力低下,业务接口优先级没有明确定义,服务整体可用性及核心服务可用性得不到保证。
3、为此,我们提出一种高并发场景下异步待处理任务智能排序处理方法来解决上述问题。
技术实现思路
1、目前当下对发票越来越重视,发票职能越来越高的情况下,如何快速将生产交易过程中所需要的发票快速开具出来,提供持续稳定的服务显得越来越总要,面对突如其来的流量及请求压力如何保证服务能扛得住,延长高负载情况下的运行时间,保证服务中的核心主干业务能稳定提供服务,给运维扩容预留出充分的时间是我们需要考虑的,否则当服务能力遇到压力的情况下,造成不可控的后果。
2、本申请提供一种高并发场景下异步待处理任务智能排序处理方法,包括以下步骤:
3、s1:接受业务请求;
4、s2:进行业务参数校验,校验通过后存入智能排序待处理任务列表,校验不通过,则智能排序引擎处理结束;
5、s3:智能排序引擎处理开始,获取智能排序待处理任务列表;
6、s4:有待处理任务时,智能排序抓取待处理任务;
7、s5:若成功锁定待处理任务,则进行业务处理,未锁定待处理任务,发送驱动处理mq,智能排序引擎处理结束;
8、s6:业务处理成功,则异步响应处理结果;业务处理不成功,则记录失败次数,没有达到最大重试次数,则异步响应处理结果;
9、s7:发送驱动处理mq;
10、s8:智能排序引擎处理结束。
11、操作的业务系统同步任务支持异步实现,操作的排序任务需要定义优先级,操作的响应结果是异步的,操作的主要动作是对将待处理任务存储到智能排序待处理任务重,智能排序任务处理引擎根据当前待处理任务的列表中任务的优先级及业务发生时间两个维度智能排序处理,提供了失败重试的机制,并通过mq响应处理结果。
12、在一些实施方式中,该高并发场景下异步待处理任务智能排序处理方法用于当智能排序引擎的处理能力小于业务端任务生产能力时。
13、在一些实施方式中,所述最大重试次数为3次。所述最大重试次数为3次。记录失败次数,没有达到最大重试,本方法中的默认重试次数为3次,支持按需调整,每次重试较上一次处理时延20秒。
14、在一些实施方式中,所述驱动处理mq为rocketmq,所述rocketmq包括延时mq消息。
15、在一些实施方式中,所述rocketmq包括排序维度属性。
16、在一些实施方式中,智能排序引擎接收到驱动处理mq后会根据消息体中的排序维度属性选中待处理任务列表,解析列表中各个待处理任务的明细信息,对任务进行实时排序,抓取最高处理优先级的任务并进行处理。
17、发送驱动处理mq,本方法中对mq的选型为rocketmq,rcoektmq天然支持延时mq消息。驱动处理mq消息体中包含了排序维度属性(排序维度属性:如在我们的应用系统中,一个账号可以管理多个地区的纳税人识别号,业务要求我们按照账号和省份的维度对任务进行智能排序并处理,那么在驱动处理消息中的排序维度属性就时账号和地区编码),智能排序引擎接收到驱动处理mq后会根据消息体中的排序维度属性命中待处理任务列表(本方法中将待处理任务存储在key,value形式的非关系型数据库中,key中包含了排序维度属性做数据隔离,如:bizsort_tasklist_账号_地区编码,value则存储待处理任务列表),解析列表中各个待处理任务的明细信息,对任务进行实时排序,抓取最高处理优先级的任务并进行处理,智能排序引擎处理结束。
18、在一些实施方式中,所述待处理任务存储在非关系型数据库中,所述非关系型数据库包括key形式或value形式。
19、在一些实施方式中,所述key形式中包括排序维度属性做数据隔离。
20、本申请提供的高并发场景下异步待处理任务智能排序处理方法,具有如下技术效果:
21、一:面对流量突增,应用服务难以支撑,容易导致服务器宕机无法提供服务的情况下,完成业务任务智能排序处理方案定义,对业务任务进行优先级定义,智能排序任务处理引擎优先执行高优先级核心业务;同时,智能排序任务处理引擎中包含了失败任务重试机制,可配置失败重试次数,在很大程度上提高了业务任务成功率,解决了高并发情况下应用服务能力下降的问题,提高了应用服务的并发能力,增强了应用服务的稳定性,可用性。对智能排序任务定义了优先级,定义了智能排序任务列表的数据模型,制定了执行顺序权重策略,制定了智能排序任务失败重试机制。
22、二:使用本方法在对服务端各个能力接口优先级做分级,接收到客户端的请求后将待处理任务分级放入待处理任务列表,并发送mq驱动处理,当处理引擎在处理业务时会优先对高优先级核心业务做处理,面对流量突增等高并发场景的时候,可以使核心业务得到优先执行,大大提高可服务的可用性。
1.一种高并发场景下异步待处理任务智能排序处理方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,该高并发场景下异步待处理任务智能排序处理方法用于当智能排序引擎的处理能力小于业务端任务生产能力时。
3.根据权利要求1所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,所述最大重试次数为3次。
4.根据权利要求1所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,所述驱动处理mq为rocketmq,所述rocketmq包括延时mq消息。
5.根据权利要求4所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,所述rocketmq包括排序维度属性。
6.根据权利要求5所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,智能排序引擎接收到驱动处理mq后会根据消息体中的排序维度属性选中待处理任务列表,解析列表中各个待处理任务的明细信息,对任务进行实时排序,抓取最高处理优先级的任务并进行处理。
7.根据权利要求1所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,所述待处理任务存储在非关系型数据库中,所述非关系型数据库包括key形式或value形式。
8.根据权利要求7所述的高并发场景下异步待处理任务智能排序处理方法,其特征在于,所述key形式中包括排序维度属性做数据隔离。