基于频率控制的数据传输方法、装置、设备和存储介质与流程

文档序号:25992883发布日期:2021-07-23 21:05阅读:56来源:国知局
基于频率控制的数据传输方法、装置、设备和存储介质与流程

本发明实施例涉及互联网技术,尤其涉及一种基于频率控制的数据传输方法、装置、设备和存储介质。



背景技术:

在互联网中,存在大量由用户发布至公共平台的交互数据,例如弹幕数据、滚动评论数据和通知消息等。这类数据的发布一般是根据用户的发布时间来顺序展示,即数据传输的频率与用户的发布频率一致。但是,展示数据的平台通常会对数据传输的频率进行额外控制。以网络直播平台中的弹幕数据为例,如果弹幕数据的传输频率过高,会导致满屏的弹幕,影响用户的观看体验;如果弹幕数据的传输频率过低,又会导致直播间中的弹幕数量太少,影响到主播的人气及其与用户的互动。

目前常见的数据传输的频率控制方法是:设置规定时间(频率控制周期)内的传输数据最大值,作为频率控制阈值,以便周期性地进行数据传输的频率控制。例如,设置1分钟内的弹幕数量最大值,则每1分钟内会统计单个直播间中的弹幕数量,且将超过弹幕数量最大值的弹幕数据全部丢弃。

虽然上述数据传输的频率控制方式可以有效的限制平台中的数据传输量,防止数据满屏或数据滚动过快的情况,但是周期性地重新统计传输的数据的数量,会造成数据传输的不均匀。例如,前30秒传输的弹幕数量就达到频率控制阈值,则后30秒会一条弹幕都没有,同时还会导致前30s弹幕数量过多,严重影响用户体验。



技术实现要素:

本发明实施例提供一种基于频率控制的数据传输方法、装置、设备和存储介质,以实现更加精细地控制数据传输的频率,提高数据传输的均匀性。

第一方面,本发明实施例提供了一种基于频率控制的数据传输方法,包括:

依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;

依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;

依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输所述当前数据;

其中,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:

依据所述单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,所述预设还债周期数小于所述令牌发放周期数;

依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。

第二方面,本发明实施例还提供了一种基于频率控制的数据传输装置,该装置包括:

令牌发放周期数确定模块,用于依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;

令牌数更新模块,用于依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;

数据传输模块,用于依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输所述当前数据;

其中,所述令牌数更新模块包括:

第一可还债令牌数确定模块,用于依据单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,预设还债周期数小于令牌发放周期数;

当前负债令牌数更新模块,用于依据第一可还债令牌数和当前负债令牌数。

第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于频率控制的数据传输方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的基于频率控制的数据传输方法。

本发明实施例通过在数据传输过程中引入令牌桶算法,以令牌的发放速率来控制数据传输的频率,一定程度上提高了数据传输的均匀性,从而更加精细地控制数据传输的频率。通过依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据;其中,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:依据所述单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,所述预设还债周期数小于所述令牌发放周期数;依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。实现了在令牌桶算法中引入预设令牌负债机制,以便在令牌桶中的令牌被消耗完时,通过借贷令牌的方式继续传输数据,确保数据传输不中断,有效地防止了数据传输过程中的抖动现象,进一步提高了数据传输的均匀性。

附图说明

图1是本发明实施例一中的一种基于频率控制的数据传输方法的流程图;

图2是本发明实施例二中的一种基于频率控制的数据传输方法的流程图;

图3是本发明实施例三中的一种基于频率控制的数据传输装置的结构示意图;

图4是本发明实施例四中的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

本实施例提供的基于频率控制的数据传输方法可适用于与用户相关的网络数据的传输频率控制,例如可以是弹幕数据、滚动评论数据和通知消息等数据的传输频率控制。本发明实施例中以弹幕数据的传输频率控制为例进行说明。该方法可以由基于频率控制的数据传输装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备中,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法包括:

s110、依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数。

其中,当前数据是指当前操作中需要被传输的数据。相对地,上一条数据是指当前操作相邻的前一次数据传输操作中传输的数据。当前时间指的是当前数据需要被传输时的系统时间。历史时间是指上一条数据被传输时的系统时间。令牌桶是一种用于控制发送到网络上的数据的数目,并允许突发数据的发送的算法。桶速是令牌桶中产生令牌的速度,根据桶速可以推断出令牌发放的周期,例如桶速为2个/20ms,那么可以确定令牌发放周期为20ms,每个令牌发放周期内发放的令牌数(即单周期发放令牌数)为2个。单周期发放令牌数可以预先设定,其应当是大于或等于1的数值。

本发明实施例中将令牌桶算法应用于弹幕数据发布过程,以控制弹幕数据的传输频率。基于原始的令牌桶算法,简单的弹幕令牌桶逻辑如下:令牌桶可以以恒定的速率不断的产生令牌,如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。每次发送弹幕的时候,从令牌桶中拿取一个令牌,如果没有令牌可以拿取,则不发送弹幕。本发明实施例在上述基础上,进一步引入了预设令牌负债机制,即令牌桶中的令牌被消耗完后,以一定的策略进行令牌借贷及还贷,以便继续发放令牌,进而继续传输弹幕数据。正因为引入了预设令牌负债机制,故本发明实施例中相应新增了当前可用令牌数、当前负债令牌数和预设负债阈值等与令牌借贷相关的参数,以控制数据传输过程中的令牌借贷及还贷。上述新引入的各参数的说明详见后续实施例内容。

具体来讲,令牌是以桶速持续产生的,而待传输的数据是根据用户的发布请求随机产生的,如此,数据传输的速率与令牌产生的速率便可能不一致。另外,由于负债机制的存在,可能会使得当前操作中可用的令牌数(即当前可用令牌数)与可发放的令牌数不一致。故本实施例中会根据两条传输的数据之间的时间差来确定该时间段内会产生的令牌数量,进而后续进行当前可用令牌数的确定。

具体实施时,可以根据桶速来确定令牌发放周期(如20ms)和单周期发放令牌数(如2个)。再根据当前时间和历史时间计算时间差time_delta,然后计算时间差与令牌发放周期的商,便可确定出时间差内需要发放令牌的周期总数(即令牌发放周期数)。例如,时间差time_delta为60ms,那么可以确定令牌发放周期数为3。当然,也可以根据时间差和桶速计算该时间差内应当发放的令牌总数,即give_permit=speed*time_delta/1000000,然后根据单周期发放令牌数和令牌总数来计算令牌发放周期。上述被除数1000000是时间转换系数,其用于控制令牌发放的粒度。

s120、依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数。

其中,当前负债令牌数是指当前操作执行前,已经负债的令牌数量。

确定了时间差内可发放的令牌总数之后,需要对令牌桶中的令牌数进行更新,以便偿还之前数据传输过程中的借贷令牌,即更新当前可用令牌数和当前负债令牌数。具体实施时,可以将令牌发放周期数和单周期发放令牌数的乘积,即令牌总数全部用于还贷。如果令牌总数大于当前负债令牌数,那么当前负债令牌数便可更新为0,而还贷后剩余的令牌数便用于更新当前可用令牌数。如果令牌总数小于或等于当前负债令牌数,那么令牌还债之后所得的负债令牌数便为更新后的当前负债令牌数,而当前可用令牌数则为0。

示例性地,依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:依据单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,预设还债周期数小于令牌发放周期数;依据第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。

进一步地,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数包括:在依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数之后,确定还债剩余令牌数;依据当前负债令牌数、所述还债剩余令牌数、所述令牌发放周期数中除所述预设还债周期数之外的剩余周期数以及所述单周期发放令牌数,继续更新当前负债令牌数,并更新当前可用令牌数。

其中,第一可还债令牌数是指用于偿还负债令牌的令牌数量,其是预设还债周期数对应的令牌数。还债剩余令牌数是指第一可还债令牌数在偿还负债令牌后剩余的令牌的数量。

为了避免令牌还债之后当前可用令牌数为0,且当前负债令牌数过大而导致无法继续借贷令牌(规避大批量无限借贷令牌),进而导致数据传输中断的情况发生,本实施例中的预设令牌负债机制可以设置一个还债周期数(即预设还债周期数),将预设还债周期数对应的令牌数全部用于还债,剩余的令牌数可全部或部分用于传输数据,这样便可避免当前操作中因无令牌可用而无法传输数据的情况。上述预设还债周期数可以是人为设定的固定值,也可以按照比例从令牌发放周期数中确定。例如令牌发放周期数为3,预设还债周期数为2。

具体实施时,根据预设还债周期数和单周期发放令牌数计算得到第一可还债令牌数。然后,计算第一可还债令牌数和当前负债令牌数的差值。如果差值大于或等于0,说明第一可还债令牌数对应的令牌足够偿还负债令牌,则将当前负债令牌数更新为0,且将差值作为还债剩余令牌数。如果差值小于0,说明负债令牌未全部偿还完毕,则用差值绝对值更新当前负债令牌数,且将还债剩余令牌数更新为0。之后,利用令牌发放周期数中剩余周期数及单周期发放令牌数计算剩余可发放令牌数。该剩余可发放令牌数可以全部用于更新当前可用令牌数,也可以进一步抽取一部分用于继续偿还负债令牌。无论剩余可发放令牌如何处理,只需要保证有一部分令牌用于传输数据即可。这样设置的好处在于,通过预设还债周期数的设置,将时间差内需要发放的令牌总数拆分为两部分,一部分用于还债,一部分用于传输数据,防止当前操作中无令牌可用的情况发生,有效规避数据传输过程中的抖动现象。

s130、依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据。

其中,预设负债阈值是指预先设定的,用于控制一次数据传输操作中借贷令牌的数量。其可以是一个固定数值,也可以是多个固定数值,以便更加精细地控制令牌的借贷过程。

传输当前数据,必须有可用的令牌,该可用的令牌可以是当前可用令牌数对应的令牌,也可以是借贷的令牌。当借贷令牌时,需要确保当前负债令牌数小于预设负债阈值,否则无法继续借贷令牌。如果是用当前可用令牌数对应的令牌来传输当前数据,则需要将当前可用令牌数减1;如果是用借贷的令牌传输当前数据,则需要将当前负债令牌数加1。如此,便可准确地进行下一条数据传输的令牌维护。

示例性地,s130包括:若当前可用令牌数大于零,则从令牌桶中获取令牌,以传输当前数据,并将当前可用令牌数递减1;若当前可用令牌数等于零,当前负债令牌数小于预设负债阈值,则从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

具体实施时,需要先判断当前可用令牌数是否大于0。如果是,说明不用借贷令牌,可直接从令牌桶中拿取可用令牌进行数据传输,之后当前可用令牌数减1。如果否,说明令牌桶中没有可用令牌,需要借贷令牌。此时,判断当前负债令牌数是否小于预设负债阈值。如果是,可以接续借贷令牌用于传输当前数据,之后当前负债令牌数加1。如果否,说明借贷令牌数量超过限制,无法借贷令牌,此时丢弃当前数据,结束本次数据传输流程。

本实施例的技术方案,通过在数据传输过程中引入令牌桶算法,以令牌的发放速率来控制数据传输的频率,一定程度上提高了数据传输的均匀性,从而更加精细地控制数据传输的频率。通过依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据;其中,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:依据所述单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,所述预设还债周期数小于所述令牌发放周期数;依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。实现了在令牌桶算法中引入预设令牌负债机制,以便在令牌桶中的令牌被消耗完时,通过借贷令牌的方式继续传输数据,确保数据传输不中断,有效地防止了数据传输过程中的抖动现象,进一步提高了数据传输的均匀性。

实施例二

本实施例在上述实施例一的基础上,对“依据当前负债令牌数、还债剩余令牌数、令牌发放周期数中除预设还债周期数之外的剩余周期数以及单周期发放令牌数,继续更新当前负债令牌数,并更新当前可用令牌数”进行了进一步优化。在此基础上,还可以进一步对“依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的基于频率控制的数据传输方法包括:

s201、依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数。

本实施例中的单周期发放令牌数须为偶数,以便用于后续的令牌拆分。

s202、依据单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,预设还债周期数小于令牌发放周期数。

s203、依据第一可还债令牌数和当前负债令牌数,更新当前负债令牌数,并确定还债剩余令牌数。

s204、依据剩余周期数和单周期发放令牌数,确定剩余可发放令牌数。

为了进一步提高令牌桶算法的数据传输防抖动效果,本实施例中剩余周期数对应的剩余可发放令牌数可一部分用于还贷令牌,另一部分用于传输数据。具体可根据当前负债令牌数的数值进行相应处理,即执行s205~s207或者s208。

s205、若当前负债令牌数大于零,则基于预设频率平滑算法,将剩余可发放令牌数拆分为第二可还债令牌数和补充令牌数。

其中,预设频率平滑算法是指预先设定的,用于控制数据传输频率均匀性的算法。

如果s203更新的当前负债令牌数大于0,说明还有需还贷令牌。此时,将剩余可发放令牌数拆分为两部分,即第二可还债令牌数和用于补充当前可用令牌的补充令牌数。

s206、依据第二可还债令牌数和当前负债令牌数,继续更新当前负债令牌数,并更新还债剩余令牌数。

由于当前负债令牌数大于0,则上述还债剩余令牌数为0。此时,计算第二可还债令牌数和当前负债令牌数的差值。若差值大于0,将差值作为还债剩余令牌数,当前负债令牌数更新为0。反之,将差值的绝对值更新为当前负债令牌数,还债剩余令牌数继续保持0。

s207、依据补充令牌数、更新后的还债剩余令牌数和当前可用令牌数,更新当前可用令牌数,并在当前可用令牌数大于令牌桶最大令牌数时,利用令牌桶最大令牌数继续更新当前可用令牌数。

在当前可用令牌数的基础上,叠加补充令牌数和更新后的还债剩余令牌数,所得结果便为更新后的当前可用令牌数。如果更新后的当前可用令牌数大于令牌桶可容纳的最大的令牌数(即令牌桶最大令牌数),则将当前可用令牌数进一步更新为令牌桶最大令牌数。

s208、若当前负债令牌数等于零,则依据剩余可发放令牌数、还债剩余令牌数和当前可用令牌数,更新当前可用令牌数,并在当前可用令牌数大于令牌桶最大令牌数时,利用令牌桶最大令牌数继续更新当前可用令牌数。

如果s203更新的当前负债令牌数等于0,说明负债令牌全部偿还完毕,此时直接相加剩余可发放令牌数、还债剩余令牌数和当前可用令牌数,所得结果用于更新当前可用令牌数。同样地,如果更新后的当前可用令牌数大于令牌桶最大令牌数,仍需要将当前可用令牌数进一步更新为令牌桶最大令牌数。

s209、若当前可用令牌数大于零,则从令牌桶中获取令牌,以传输当前数据,并将当前可用令牌数递减1。

以弹幕数据为例,相关技术中,当频率控制周期内的弹幕数据的发布数量到达频率控制阈值后,后续的弹幕数据会被直接丢弃,从而导致丢弃一些高价值的弹幕数据。基于此,本实施例考虑到传输的数据是与用户相关的数据,而用户的等级决定了其传输的数据的重要性。故本实施例中根据用户等级对数据进行了优先级划分,且设置了两个负债阈值,以便在令牌桶中的令牌不足时,能够保证先传输重要性更高的数据。也就是在令牌桶算法引入负债机制的基础,进一步引入双阈值的数据分级机制。本实施例中将数据划分为4个优先级,其重要性依次为第一优先级、第二优先级、第三优先级和第四优先级。

经过上述操作,能够最终确定当前负债令牌数和当前可用令牌数,便可进行令牌的获取及当前数据的传输。具体实施时,先判断当前可用令牌数是否大于0。如果是(简称无负债),说明可用令牌数量足够,此时不需要判断当前数据的优先级,而是直接从令牌桶中拿取可用令牌,进行当前数据的传输,且将当前可用令牌数减1。

s210、若当前可用令牌数等于零,当前负债令牌数小于预设负债阈值中的第一预设负债子阈值,则在判断当前数据的优先级不是第四优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

其中,第一预设负债子阈值α是指预设负债阈值中的一个数值较小的阈值,其用于初步控制令牌借贷数量。

如果s209中判断当前可用令牌数等于零,则进一步判断当前负债令牌数是否小于预设负债阈值中的第一预设负债子阈值。如果是(简称负债小于α),则可以传输前三个优先级的数据,故先判断当前数据的优先级是否属于前三个优先级。如果是,则借贷一个令牌用于传输当前数据,并将当前负债令牌数加1;如果否,则丢弃当前数据。

s211、若当前可用令牌数等于零,当前负债令牌数等于或大于第一预设负债子阈值且小于预设负债阈值中的第二预设负债子阈值,则在判断当前数据的优先级是第一优先级或第二优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

其中,第二预设负债子阈值β是指预设负债阈值中的一个数值较大的阈值,其用于进一步控制令牌借贷数量。

如果s210中判断当前负债令牌数等于或大于第一预设负债子阈值,则进一步判断其是否小于预设负债阈值中的第二预设负债子阈值。如果是(简称负债小于β),则可以传输前两个优先级的数据,故先判断当前数据的优先级是否属于前两个优先级。如果是,则借贷一个令牌用于传输当前数据,并将当前负债令牌数加1;如果否,则丢弃当前数据。

s212、若当前可用令牌数等于零,当前负债令牌数等于或大于第二预设负债子阈值,则在判断当前数据的优先级是第一优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

如果s211中判断当前负债令牌数等于或大于第二预设负债子阈值(简称负债大于或等于β),说明此时可借贷的令牌数量极少,仅能用于传输优先级最高的数据。故判断当前数据的优先级是否是第一优先级。如果是,则借贷一个令牌用于传输当前数据,并将当前负债令牌数加1;如果否,则丢弃当前数据。由此可知,第一优先级的数据是必须保证传输的,其可以无限借贷令牌。

示例性地,当应用场景为弹幕发布场景时,第一优先级、第二优先级、第三优先级和第四优先级对应的数据分别是由主播或直播平台管理员发布的弹幕、由第一消费等级的用户发布的弹幕、由第二消费等级的用户发布的弹幕、以及由除第一消费等级和第二消费等级之外的其他消费等级的用户发布的弹幕。

参见下表,可以获知不同优先级的弹幕数据的处理方式与当前可用令牌数、当前负债令牌数、第一预设负债子阈值和第二预设负债子阈值之间的关系。

本实施例的技术方案,通过依据剩余周期数和单周期发放令牌数,确定剩余可发放令牌数;若当前负债令牌数大于零,则基于预设频率平滑算法,将剩余可发放令牌数拆分为第二可还债令牌数和补充令牌数;依据第二可还债令牌数和当前负债令牌数,继续更新当前负债令牌数,并更新还债剩余令牌数;依据补充令牌数、更新后的还债剩余令牌数和当前可用令牌数,更新当前可用令牌数,并在当前可用令牌数大于令牌桶最大令牌数时,利用令牌桶最大令牌数继续更新当前可用令牌数。实现了对可发放令牌总数对应的令牌的精确划分,进一步确保了负债令牌的偿还能力,且保证了可用令牌的可用性,进一步提高数据传输的防抖动效果。通过将预设负债阈值拆分为第一预设负债子阈值和第二预设负债子阈值,实现了在令牌桶算法引入负债机制的基础,进一步引入双阈值的数据分级机制,从而能够在保证数据传输均匀性的基础上,进一步保证高价值数据能够被优先传输。

实施例三

本实施例提供一种基于频率控制的数据传输装置,参见图3,该装置具体包括:

令牌发放周期数确定模块310,用于依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;

令牌数更新模块320,用于依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;

数据传输模块330,用于依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据;

其中,令牌数更新模块320包括:

第一可还债令牌数确定模块,用于依据单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,预设还债周期数小于令牌发放周期数;

当前负债令牌数更新模块,用于依据第一可还债令牌数和当前负债令牌数。

可选地,令牌数更新模块320还包括当前可用令牌数更新模块,用于:

在依据第一可还债令牌数和当前负债令牌数,更新当前负债令牌数之后,确定还债剩余令牌数;

依据当前负债令牌数、还债剩余令牌数、令牌发放周期数中除预设还债周期数之外的剩余周期数以及单周期发放令牌数,继续更新当前负债令牌数,并更新当前可用令牌数。

进一步地,当前可用令牌数更新模块具体用于:

依据剩余周期数和单周期发放令牌数,确定剩余可发放令牌数;

若当前负债令牌数大于零,则基于预设频率平滑算法,将剩余可发放令牌数拆分为第二可还债令牌数和补充令牌数;

依据第二可还债令牌数和当前负债令牌数,继续更新当前负债令牌数,并更新还债剩余令牌数;

依据补充令牌数、更新后的还债剩余令牌数和当前可用令牌数,更新当前可用令牌数,并在当前可用令牌数大于令牌桶最大令牌数时,利用令牌桶最大令牌数继续更新当前可用令牌数。

进一步地,当前可用令牌数更新模块还具体用于:

在依据剩余周期数和单周期发放令牌数,确定剩余可发放令牌数之后,若当前负债令牌数小于或等于零,则依据剩余可发放令牌数、还债剩余令牌数和当前可用令牌数,更新当前可用令牌数,并在当前可用令牌数大于令牌桶最大令牌数时,利用令牌桶最大令牌数继续更新当前可用令牌数。

可选地,数据传输模块330具体用于:

若当前可用令牌数大于零,则从令牌桶中获取令牌,以传输当前数据,并将当前可用令牌数递减1;

若当前可用令牌数等于零,当前负债令牌数小于预设负债阈值,则从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

可替代地,数据传输模块330具体用于:

若当前可用令牌数大于零,则从令牌桶中获取令牌,以传输当前数据,并将当前可用令牌数递减1;

若当前可用令牌数等于零,当前负债令牌数小于预设负债阈值中的第一预设负债子阈值,则在判断当前数据的优先级不是第四优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1;

若当前可用令牌数等于零,当前负债令牌数等于或大于第一预设负债子阈值且小于预设负债阈值中的第二预设负债子阈值,则在判断当前数据的优先级是第一优先级或第二优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1;

若当前可用令牌数等于零,当前负债令牌数等于或大于第二预设负债子阈值,则在判断当前数据的优先级是第一优先级时,从令牌桶中借贷令牌,以传输当前数据,并将当前负债令牌数累加1。

其中,当应用场景为弹幕发布场景时,第一优先级、第二优先级、第三优先级和第四优先级对应的数据分别是由主播或直播平台管理员发布的弹幕、由第一消费等级的用户发布的弹幕、由第二消费等级的用户发布的弹幕、以及由除第一消费等级和第二消费等级之外的其他消费等级的用户发布的弹幕。

通过本发明实施例三的一种基于频率控制的数据传输装置,实现了在数据传输过程中引入令牌桶算法,以令牌的发放速率来控制数据传输的频率,一定程度上提高了数据传输的均匀性,从而更加精细地控制数据传输的频率。进一步实现了在令牌桶算法中引入预设令牌负债机制,以便在令牌桶中的令牌被消耗完时,通过借贷令牌的方式继续传输数据,确保数据传输不中断,有效地防止了数据传输过程中的抖动现象,进一步提高了数据传输的均匀性。

本发明实施例所提供的基于频率控制的数据传输装置可执行本发明任意实施例所提供的基于频率控制的数据传输方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,上述基于频率控制的数据传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

实施例四

参见图4,本实施例提供了一种电子设备,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器420执行,使得一个或多个处理器420实现本发明实施例所提供的基于频率控制的数据传输方法,包括:

依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;

依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;

依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据;

其中,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:

依据所述单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,所述预设还债周期数小于所述令牌发放周期数;

依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。

当然,本领域技术人员可以理解,处理器420还可以实现本发明任意实施例所提供的基于频率控制的数据传输方法的技术方案。

图4显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图4所示,该电子设备包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。

存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于频率控制的数据传输方法对应的程序指令/模块(例如,基于频率控制的数据传输装置中的令牌发放周期数确定模块、令牌数更新模块和数据传输模块)。

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

输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种基于频率控制的数据传输方法,该方法包括:

依据当前数据传输的当前时间、上一条数据传输的历史时间以及令牌桶的桶速,确定令牌发放周期数和单周期发放令牌数;

依据令牌发放周期数、单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前可用令牌数和当前负债令牌数;

依据当前可用令牌数、当前负债令牌数和预设负债阈值,传输当前数据;

其中,依据所述令牌发放周期数、所述单周期发放令牌数、当前可用令牌数和当前负债令牌数,基于预设令牌负债机制,更新当前负债令牌数包括:

依据所述单周期发放令牌数和预设还债周期数,确定第一可还债令牌数,其中,所述预设还债周期数小于所述令牌发放周期数;

依据所述第一可还债令牌数和当前负债令牌数,更新当前负债令牌数。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于频率控制的数据传输方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的基于频率控制的数据传输方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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