掌桥专利:专业的专利平台
掌桥专利
首页

一种发送取数请求的方法及装置、计算设备

文献发布时间:2024-04-18 19:59:31


一种发送取数请求的方法及装置、计算设备

技术领域

本申请涉及计算机软件技术领域,尤其涉及一种发送取数请求的方法及装置、计算设备及存储介质。

背景技术

为了保证调用方从服务方取数的便利性,一般是通过直接调用服务方的接口实现的,而面对调用方大量的取数请求,会对服务方造成一定压力,无法保证取数的稳定性。现有技术中服务方一般采用对取数请求进行分流、或对取数请求进行降级、或对取数请求的请求次数进行限流等来保证服务方接口的稳定访问和高可用性。而这种分流、降级、限流的控制方法大大降低了取数的效率,拉长取数的时间,影响了正常的新增客户的交易。

综上,本申请提供一种发送取数请求的方法,以达到更高效的取数的目标

发明内容

本申请实施例提供一种发送取数请求的方法,以达到更高效的取数的目标,提高取数的效率,缩短取数的时间,同时保证新进客户的交易正常。

第一方面,本申请实施例提供一种发送取数请求的方法,适用于请求方在任一取数周期向服务方发送取数请求,其中,每个取数周期对应有多个取数时段;所述方法包括:针对任一取数时段,根据取数时段在各历史取数周期的流量统计信息,预估取数时段在当前取数周期下的新增取数对象的第一数量;基于述所第一数量,确定取数时段在当前取数周期下的存量取数等级;其中,存量取数等级越高,存量取数请求对应的流量越低;存量取数请求为历史取数周期中已发生的取数请求;在满足取数时段的单位存量取数请求数量的前提下,根据存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;其中,每个取数对象对应一个取数请求;存量取数对象的优先级是根据存量取数对象的历史取数情况确定的;存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多。

上述的设计中,为了保证取数的稳定性,先获取各历史取数周期的流量统计信息,根据获取的流量统计信息进行预估新增取数对象的第一数量,在得到第一数量之后,根据第一数量确定当前取数周期下的存量取数等级,根据存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求。也就是说针对新增取数的第一对象的第一数量是未知的,是根据获取的流量统计信息进行预估得到存量取数等级确定的,进而最终确定每个单位时间内发送的存量取数请求,从而保证取数的效率,通过控制存量取数的请求,为新进客户取数的请求提供一定的空间,保证了新进客户的正常交易。与现有技术中,通过分流、或对取数请求进行降级、或对取数请求的请求次数进行限流等来保证服务方接口的稳定访问和高可用性来说,本申请的取数方法更好的保证了取数的效率以及保证了新进用户的正常交易,从而实现了稳定访问和高可用性。

在一种可能的设计中,还包括:设置每个取数时段对应的时段类型;根据存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求,包括:根据取数时段对应的时段类型、存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;其中,在时段类型为新增时段时,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;存量取数等级越低,单位时间内发送的低优先存量取数对象的存量取数请求越多;在时段类型为存量时段时,单位时间内发送的低优先存量取数对象的存量取数请求越多。

上述的设计中,为了在真实业务中能够区分新增客户和存量客户,所以需要设置每个取数时段对应的时段类型。在时段类型的前提设置下,根据存量取数等级和存量取数对象的优先级确定每个单位时间内发送的存量取数请求。在时段类型为新增时段时,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多,也就是说在该类型下新增客户更多,所以要控制存量客户对应的单位时间内发送的存量取数请求,其中,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;存量取数等级越低,单位时间内发送的低优先存量取数对象的存量取数请求越多,从而保证更多新增客户的正常交易。在时段类型为存量时段时,根据单位时间内发送的低优先存量取数对象的存量取数请求越多,从而保证在新增客户数量不多时,存量客户也要取数成功,也就是尽量发送更多低优先存量的客户,从而保证存量客户的交易成功进而达到业务取数的稳定访问和高可用性。

在一种可能的设计中,根据所述取数时段对应的时段类型、所述存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求,包括在取数时段对应的时段类型为新增时段时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number,且单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*rumber;取数时段对应的时段类型为存量时段且存量取数等级低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=rank/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;在取数时段对应的时段类型为存量时段且存量取数等级不低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*number;其中,rank为存量取数等级,M为等级数量,number为单位时间内发送的存量取数请求的总数。

上述的设计中,针对设置的不同取数时段对应的时段类型,来具体计算出确定每个单位时间内发送的存量取数请求。针对时段类型为新增时段时,通过单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number,且单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*rumber来达到单位时间内发送的低优先存量取数对象的存量取数请求越多;在时段类型为存量时段时,针对也等级低的时候,通过单位时间内发送的高优先存量取数对象的存量取数请求的数量=rank/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=(M-rank)/M*number来达到单位时间内发送的低优先存量取数对象的存量取数请求越多;在针对等级高的时候,通过单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*number来达到单位时间内发送的高优先存量取数对象的存量取数请求越多,从而保证取数成功进而达到业务取数的稳定访问和高可用性。

在一种可能的设计中,确定每个单位时间内发送的存量取数请求之后,还包括:针对每个单位时间内发送的任一取数请求,根据取数请求的取数结果更新取数请求的处理状态,并在处理状态为失败且取数请求的发送次数小于设定阈值时,重新发送取数请求。

上述的设计中,在确定单位时间内发送的存量取数请求之后,根据取数请求的取数结果对取数请求的状态进行处理,即更新取数请求的处理状态,在处理状态为失败的时候,控制取数请求的发送次数,也就是让取数请求的发送次数小于设定的阈值时,重新发送取数请求,尽可能的保证取数的成功,在超过设定的阈值之后,则更新处理状态为失败,从而保证了取数方法的重试,以达到更高效果平稳的取数目的。

在一种可能的设计中,根据取数时段在各历史取数周期的流量统计信息,预估取数时段在当前取数周期下的新增取数对象的第一数量,包括:根据取数时段在各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率;根据当前取数周期的预估新增取数对象的第四数量和预估率,预估取数时段在当前取数周期下的新增取数对象的第一数量。

上述的设计中,通过各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率,在确定预估率之后,根据预估率和当前取数周期的预估新增取数对象的第四数量预估取数时段在当前取数周期下的新增取数对象的第一数量,从而保证预估的准确性,减少误差。

在一种可能的设计中,基于第一数量,确定取数时段在当前取数周期下的存量取数等级,包括:基于当前取数周期下的各取数时段的第一数量,按照预设等级数量,确定每个取数时段在当前取数周期下的存量取数等级。

上述的设计中,在确定了第一数量之后,根据第一数量确定取数时段在当前取数周期下的存量取数等级,也就是按照预设等级数量对每一个取数时段进行划分,从而确定每个取数时段在当前取数周期下的存量取数等级,为后续确定存量存量取数请求提供前提条件,保证取数的稳定性,提高取数效率。

在一种可能的设计中,每个取数周期对应一个取数批次;存量取数对象的优先级是根据存量取数对象的历史取数情况确定的,包括:针对任一存量取数对象,根据存量取数对象在上一取数批次的取数请求的取数结果,确定存量取数对象的优先级;其中,取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级。

上述的设计中,针对任一存量取数对象,根据存量取数对象在上一取数批次的取数请求的取数结果,确定存量取数对象的优先级;其中取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级,也就是说针对没有取数成功的存量取数对象,应该尽量让其取数成功,所以优先级高,对于已经取数成功的存量取数对象来说,优先级低,从而保证了取数的稳定性,保证交易的正常进行。

第二方面,本申请实施例提供一种发送取数请求的装置,适用于请求方在任一取数周期向服务方发送取数请求,其中,每个取数周期对应有多个取数时段;所述方法包括:

预估单元,用于针对任一取数时段,根据所述取数时段在各历史取数周期的流量统计信息,预估所述取数时段在当前取数周期下的新增取数对象的第一数量;基于所述第一数量,确定所述取数时段在当前取数周期下的存量取数等级;其中,存量取数等级越高,存量取数请求对应的流量越低;存量取数请求为历史取数周期中已发生的取数请求;

确定单元,用于在满足所述取数时段的单位存量取数请求数量的前提下,根据所述存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;其中,每个取数对象对应一个取数请求;存量取数对象的优先级是根据存量取数对象的历史取数情况确定的;存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多。

在一种可能的设计中,还包括:设置单元;

所述设置单元,还用于设置每个取数时段对应的时段类型;

所述确定单元,还具体用于根据所述取数时段对应的时段类型、所述存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;

其中,在时段类型为新增时段时,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;存量取数等级越低,单位时间内发送的低优先存量取数对象的存量取数请求越多;

所述确定单元,还具体用于在时段类型为存量时段时,单位时间内发送的低优先存量取数对象的存量取数请求越多。

在一种可能的设计中,所述确定单元,具体用于在所述取数时段对应的时段类型为新增时段时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number,且单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*rumber;

在所述取数时段对应的时段类型为存量时段且存量取数等级低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=rank/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;

在所述取数时段对应的时段类型为存量时段且存量取数等级不低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*number;

其中,rank为存量取数等级,M为等级数量,number为单位时间内发送的存量取数请求的总数。

在一种可能的设计中,还包括更新单元;

所述更新单元,还用于针对每个单位时间内发送的任一取数请求,根据所述取数请求的取数结果更新所述取数请求的处理状态,并在处理状态为失败且所述取数请求的发送次数小于设定阈值时,重新发送所述取数请求。

在一种可能的设计中,所述预估单元,具体用于根据所述取数时段在各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率;

所述预估单元,具体用于根据当前取数周期的预估新增取数对象的第四数量和所述预估率,预估所述取数时段在当前取数周期下的新增取数对象的第一数量。

在一种可能的设计中,所述确定单元,具体用于基于所述当前取数周期下的各取数时段的第一数量,按照预设等级数量,确定每个取数时段在当前取数周期下的存量取数等级。

在一种可能的设计中,所述确定单元,具体用于针对任一存量取数对象,根据所述存量取数对象在上一取数批次的取数请求的取数结果,确定所述存量取数对象的优先级;其中,取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级。

第三方面,本申请还提供一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述发送取数请求的方法。

第四方面,本申请还提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行计算机可读指令时,使得计算机执行上述发送取数请求的方法。

上述第二方面至第四方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。

附图说明

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

图1为本申请实施例提供的一种发送取数请求的方法的系统框架图;

图2为本申请实施例提供一种发送取数请求的方法流程示意图;

图3为本申请提供一种确定第一数量的方法流程示意图;

图4为本申请实施例提供的一种确定每个单位时间内发送的存量取数请求方法流程示意图;

图5为本申请实施例提供一种更新取数请求的处理状态流程示意图;

图6本申请实施例提供一种整体取数流程示意图;

图7本申请实施例提供另一种整体取数流程示意图;

图8为本申请实施例提供一种发送取数请求的装置;

图9为本申请实施例还提供了一种计算设备。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

通常情况下,对于周期性接口取数的问题,调用方请求服务接口的取数方式一般是直接调用接口获取,在这种获取过程中就会造成取数拥挤,而现有技术针对上述的问题一般采用的是分流、降级、限流来保证接口的稳定访问和高可用性,其中分流是指将请求的流量降低,分到其他时间节点上去请求服务方;降级:将该请求优先级降低,这样会降低获取数据的效率;限流:限制请求的次数,同样在单位时间内会降低取数效率,拉长取数时间。上述的处理方式会严重降低取数的效率,且在取数过程中并没有对新进客户和存量客户进行区分,因为在实际的应用场景中,新进客户的粘度更低,所以新进件的客户相比于存量客户对于业务系统更重要,为了不影响新进件客户取数情况,也为了更高效的获取数据,需要提供一种发送取数请求的方法。

图1为本申请实施例提供的一种发送取数请求的方法的系统框架图,调用方101和服务方102。其中,调用方101是通过设置取数的管理方法来保证服务方不会受到太大的取数压力,保证了取数的稳定性,调用方101通过设置的取数管理方法通过接口去服务方102取数,从而保证取数成功。服务方102是根据调用方101的取数来返回对应的数据信息,保证取数成功。实际情况上,调用方101有多个,每个调用方都可以采用如下同样的管理方法,从而保证每个调用方不会给服务方太大的取数压力,从而无需服务方进行调控管理。

调用方101和服务方102连接方式不进行具体限定,可以如图1所示采用有线连接,也可以是无线连接。

针对具体的取数的方法,如图2所示,图2为本申请实施例提供一种发送取数请求的方法流程示意图,包括:

S201.针对任一取数时段,根据取数时段在各历史取数周期的流量统计信息,预估取数时段在当前取数周期下的新增取数对象的第一数量;基于第一数量,确定取数时段在当前取数周期下的存量取数等级;其中,存量取数等级越高,存量取数请求对应的流量越低;存量取数请求为历史取数周期中已发生的取数请求。

通常情况下,对于周期性调用接口取数的问题,需要交易正常进行的目的,所以需要保证取数成功。根据取数时段在各历史取数周期的流量统计信息来预估取数时段在当前取数周期下新增取数对象的第一数量,所谓的新增取数对象的第一数量就是与存量取数对应的新增客户。根据第一数量确定取数时段在当前取数周期下的存量取数等级。其中等级越高,历史取数周期中已发生的取数请求流量越低,从而获取等级排序下的取数名单。

一个示例中,假设在A取数时段下在各历史取数周期的流量统计信息为B,根据B确定当前取数周期下的新增取数对应的第一数量C,根据C确定取数时段在当前取数周期下的存量取数等级K。

针对具体预估在当前取数周期下的新增取数对象的第一数量的方式多种多样,下面以具体一种实施方式为例,如图3所示,图3为本申请提供一种确定第一数量的方法流程示意图,包括:

S301.根据取数时段在各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率。

为了保证更好的为新增取数对象取数成功,需要预估一下新增取数对象的数量,也就是根据取数时段在各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率。其中第二数量是根据周期批次确定的,具体的计算公式如下:

preNewSend(i)=ROUND(((newSendbatchNo3(i))+(newSendbatchNo2(i))+(newSendbatchNo1(i)))/3);

f(i)=realNewSend(i)/preNewSend(i)

其中,preNewSend(i)为第i时段下的预估新增取数对象的第二数量,newSendbatchNo为新增客户的数量,f(i)为第i时段下的预估率。

一个示例中,如表1所示,以九点到九点半这个时段为例,根据公式代入得到preNewSend(i)=(120+120+110)/3,假设此时的结果为117,真实新增取数对象的120,从而得到f(i)=realNewSend(i)/preNewSend(i)=117/120,得到最终预估率0.975。

表1

S302.根据当前取数周期的预估新增取数对象的第四数量和预估率,预估取数时段在当前取数周期下的新增取数对象的第一数量。

在得到预估率之后,需要根据预估率确定当前取数周期下的新增取数对象的第一数量,具体是根据预估率和当前取数周期的预估取数对象的第四数量,具体的计算公式如下:

NewSend(i)=(f(0)+f(1)+f(2)……+f(i-1))/(i-1)*preNewSend(i)

其中,NewSend(i)为i时段下的第一数量。

接着上述示例,假设上述f(0)为0.975,f(1)为0.62,在确定了预估率后,最终根据计算得到第二数量获得最终的第一数量的值。

在获取第一数量之后,按照预设等级数量,确定每个取数时段在当前取数周期下的存量取数等级的方式多种多样,下面以一种实现方式为例,即基于当前取数周期下的各取数时段的第一数量,按照预设等级数量,确定每个取数时

段在当前取数周期下的存量取数等级,其中等级数量的确定公式为:

position=(max(order(i))-min(order(i)))/M

其中,position为每个区间之间的差值,M为预设的等级数量。

在确定当前周期下各取数时段的第一数量后,按照预设的等级进行划分存量取数等级,从而控制取数的发送顺序,提高取数的效率。一个示例中,如下表2所示,确定每个时间段的等位因子,根据预设的等级数量设置每个时间段的等级因子所在的等级,具体来看,假设时段1对应的等位因子(order)为50,时段2对应的等位因子(order)为40.......,假设预设等级数量为5,假设最大的(50-40)/5=2,也就是第一个等级区间为40-42,42-44,以此类推,而其具体的确定方式采用的是[min(order(i)),min(order(i))+position)]对应的order5,[min(order(i))+position,min(order(i))+2*position)]对应的是等级4,[min(order(i))+2*position,min(order(i))+3*position)]对应的是等级3,[min(order(i))+3*position,min(order(i))+4*position)]对应的是等级2,[min(order(i))+4*position,max(order(i))]对应的是等级1,进而得到如图表3所示的等级情况。

表2

表3

S202.在满足取数时段的单位存量取数请求数量的前提下,根据存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求,其中,每个取数对象对应一个取数请求;存量取数对象的优先级是根据存量取数对象的历史取数情况确定的;存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多。

在满足了取数单位时段的单位存量取数请求数量的前提下,需要尽可能的保证取数的交易成功,所以对其发送的顺序需要一定的管理方法,从而保证正常的新增客户的交易。具体来看,根据存量取数等级和存量取数对象的优先级去确定每个单位时间内发送的存量取数请求。在此过程中,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多,进而保证取数的成功率。

在确定每个单位的时间内发送的存量取数请求的方法多种多样,下面以其中一种实现方式为例,首先还包括设置每个时间段的对应的时段类型,因为不同的时段会导致用户的类型不同,例如,白天新增客户多,夜晚新增客户少。而设置每个时间段对应的时段类型,便于后续更加准确的确定存量取数对象的存量请求,提高取数的效率。如图4所示,图4为本申请实施例提供的一种确定每个单位时间内发送的存量取数请求方法流程示意图,包括:

S401.根据取数时段对应的时段类型、存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求。

存量取数请求的确定是基于对应的时段类型,存量取数等级和存量取数对象的优先级共同确定的,而在实际业务中,时段类型主要有两种,一种是存量客户,一种是新增用户。

S402.在时段类型为新增时段时,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;存量取数等级越低,单位时间内发送的低优先存量取数对象的存量取数请求越多;在时段类型为存量时段时,单位时间内发送的低优先存量取数对象的存量取数请求越多。

其中,在不同的时段类型下确定存量对象的取数请求也不相同,在时段类型为新增时段时(B),针对等级高低也具有一定划分,即在存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;具体的公式如下:rank>M/2:number2=rank/M*number2*(priority为0列表)+(M-rank)/M*number2*(priority非0高优先列表);其中,rank为等级,M为等级预设区间,(priority非0高优先列表)和(priority为0列表)为优先级,也就是在所述取数时段对应的时段类型为存量时段且存量取数等级不低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*number。

一个示例中,在02:00:00~02:30:00时间段区间通过计算的等级为5大于5/2(M设置为5),发送笔数是20笔,类型是B,说明新增交易少,则此处发送的优先级笔数为:20=5/5*20(priority为0列表)+0/5*20(priority非0高优先列表),也就是发送0笔高优先级低流量的,20笔高流量低优先级的数据,达到发送更多高流量目的。

在存量取数等级越低时,单位时间内发送的低优先存量取数对象的存量取数请求越多;具体公式如下:rank

一个示例中,在00:00:00~00:30:00时间段区间通过计算的等级为1小于5/2(M设置为5),发送笔数是20笔,类型是B,说明新增交易少,则此处发送的优先级笔数为:20=1/5*20(priority非0高优先列表)+4/5*20(priority为0列表),也就是发送4笔高优先级低流量的,16笔高流量低优先级的数据,达到发送更多高流量目的。

在时段类型为存量时段时(A),单位时间内发送的低优先存量取数对象的存量取数请求越多,具体公式如下:rumber1=rank/M*rumber1*(priority非0高优先列表)+(M-rank)/M*number 1*(priority为0列表),也就是在所述取数时段对应的时段类型为新增时段时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number,且单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*rumber。

一个示例中,还是在09:00:00~09:30:00时间段区间为例,假设通过计算的等级为2(M设置为5),发送数量是10笔,类型是A,则此处发送的优先级笔数为:10=2/5*10(priority非0高优先列表)+3/5*10(priority为0列表),也就是发送4笔高优先级低流量的,6笔高流量低优先级的数据,达到发送更多高流量目的。

在确定每个单位时间内发送的存量取数请求之后,还包括针对每个单位时间内发送的任一取数请求,根据取数请求的取数结果更新取数请求的处理状态,并在处理状态为失败且所述取数请求的发送次数小于设定阈值时,重新发送取数请求。

在实际使用中,取数不可能一次均成功,会存在一次无法取数成功,为了保证交易正常进行,需要提供取数成功的重试机制,也就是根据设定的预设阈值来控制一个中间值,从而保证取数成功率。

一个示例中,如图5所示,图5为本申请实施例提供一种更新取数请求的处理状态流程示意图,在上述正常取数的流程中,也就是接到取数任务(GenerateTask)初始化设置后进行取数,自动记录取数次数,判断是否成功,若成功,更新状态为取数成功,若不成功,继续取数,同时取数次数进行叠加,当取数次数大于5次仍然没有成功时,则将该取数状态更新为失败。

针对存量取数对象的优先级设置的方式多种多样,下面以其中一种实现方式为例,根据存量取数对象的历史取数情况确定的,具体来看,针对任一存量取数对象,根据存量取数对象在上一取数批次的取数请求的取数结果,确定存量取数对象的优先级;其中,取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级。

其中,根据存量取数对象在上一取数批次的取数请求的取数结果,确定存量取数对象的优先级,也就是说,针对在上一取数批次的取数结果为成功时,在下一批次应该更加重视没有发送成功的取数和新增对象的取数,也就是取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级。

如6和图7为本申请实施例提供一种整体取数流程示意图,通过图6处理模块根据取数时段在各历史取数周期的流量统计信息,根据流量统计信息进行流量算法均衡模块进行

时间段流量配置,获取参数计算优先级,判断是否初始化,是,按优先级划分A或B类型取数;否,获取未发送成功的状态取数的数量,更改优先级后再按照优先级进行分类,从而最终获取不同类型下存量对象取数请求,再根据取数调度模块去服务方接口进行取数,同时通过状态更新模块进行状态更新。

基于相同的技术构思,本发明实施例提供了一种发送取数请求的装置,适用于请求方在任一取数周期向服务方发送取数请求,其中,每个取数周期对应有多个取数时段,如图8所示,包括:

预估单元801,用于针对任一取数时段,根据所述取数时段在各历史取数周期的流量统计信息,预估所述取数时段在当前取数周期下的新增取数对象的第一数量;基于所述第一数量,确定所述取数时段在当前取数周期下的存量取数等级;其中,存量取数等级越高,存量取数请求对应的流量越低;存量取数请求为历史取数周期中已发生的取数请求;

确定单元802,用于在满足所述取数时段的单位存量取数请求数量的前提下,根据所述存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;其中,每个取数对象对应一个取数请求;存量取数对象的优先级是根据存量取数对象的历史取数情况确定的;存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多。

一种可选地实施方式中,还包括:设置单元803;

所述设置单元803,还用于设置每个取数时段对应的时段类型;

所述确定单元802,还具体用于根据所述取数时段对应的时段类型、所述存量取数等级和存量取数对象的优先级,确定每个单位时间内发送的存量取数请求;其中,在时段类型为新增时段时,存量取数等级越高,单位时间内发送的高优先存量取数对象的存量取数请求越多;存量取数等级越低,单位时间内发送的低优先存量取数对象的存量取数请求越多;

所述确定单元801,还具体用于在时段类型为存量时段时,单位时间内发送的低优先存量取数对象的存量取数请求越多。

一种可选地实施方式中,所述确定单元801,具体用于在所述取数时段对应的时段类型为新增时段时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number,且单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*rumber;

在所述取数时段对应的时段类型为存量时段且存量取数等级低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=rank/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;

在所述取数时段对应的时段类型为存量时段且存量取数等级不低于平均等级时,单位时间内发送的高优先存量取数对象的存量取数请求的数量=(M-rank)/M*number;单位时间内发送的低优先存量取数对象的存量取数请求的数量=rank/M*number;

其中,rank为存量取数等级,M为等级数量,number为单位时间内发送的存量取数请求的总数。

一种可选地实施方式中,还包括更新单元804;

所述更新单元804,还用于针对每个单位时间内发送的任一取数请求,根据所述取数请求的取数结果更新所述取数请求的处理状态,并在处理状态为失败且所述取数请求的发送次数小于设定阈值时,重新发送所述取数请求。

一种可选地实施方式中,所述预估单元801,具体用于根据所述取数时段在各历史取数周期的预估新增取数对象的第二数量和各历史取数周期的真实新增取数对象的第三数量,确定预估率;

所述预估单元801,具体用于根据当前取数周期的预估新增取数对象的第四数量和所述预估率,预估所述取数时段在当前取数周期下的新增取数对象的第一数量。

一种可选地实施方式中,所述确定单元802,具体用于基于所述当前取数周期下的各取数时段的第一数量,按照预设等级数量,确定每个取数时段在当前取数周期下的存量取数等级。

一种可选地实施方式中,所述确定单元802,具体用于针对任一存量取数对象,根据所述存量取数对象在上一取数批次的取数请求的取数结果,确定所述存量取数对象的优先级;其中,取数结果为失败的存量取数对象的优先级高于取数结果为成功的存量取数对象的优先级。

基于相同的技术构思,本发明实施例还提供了一种计算设备,如图9所示,包括至少一个处理器901,以及与至少一个处理器连接的存储器902,本发明实施例中不限定处理器901与存储器902之间的具体连接介质,图9中处理器901和存储器902之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本发明实施例中,存储器902存储有可被至少一个处理器901执行的指令,至少一个处理器901通过执行存储器902存储的指令,可以执行前述的基于发送取数请求的方法中所包括的步骤。

其中,处理器901是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据,从而实现数据处理。可选的,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于发送取数请求的方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述发送取数请求的方法的步骤。

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

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

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

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

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种磁环模块式转子及电机
  • 一种磁环外套粘结钕铁硼磁环内转子机构
  • 一种注塑磁环外套粘结钕铁硼磁环内转子机构
技术分类

06120116521228