发明内容
有鉴于此,本公开提出了一种业务对象的处理方法及装置,以提高业务对象处理的灵活性。
根据本公开的一方面,提供了一种业务对象的处理方法,包括:
获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数;
根据所述各个业务对象的自身轮播周期确定所述多个业务对象的轮播优先顺序;
根据所述各个业务对象的自身轮播周期的最小公倍数确定所述多个业务对象的共有轮播周期;
根据所述轮播优先顺序、所述各个业务对象的自身轮播周期和所述各个业务对象的轮播数,确定所述多个业务对象在所述共有轮播周期中的播放序列。
在一种可能的实现方式中,根据所述各个业务对象的自身轮播周期的最小公倍数确定所述多个业务对象的共有轮播周期,包括:
将所述各个业务对象的自身轮播周期的最小公倍数确定为所述多个业务对象的共有轮播周期。
在一种可能的实现方式中,根据所述轮播优先顺序、所述各个业务对象的自身轮播周期和所述各个业务对象的轮播数,确定所述多个业务对象在所述共有轮播周期中的播放序列,包括:
根据所述各个业务对象的自身轮播周期中最大的自身轮播周期确定所述共有轮播周期中的单轮周期;
根据所述各个业务对象的自身轮播周期确定所述各个业务对象在所述共有轮播周期中的轮播区间;
根据所述各个业务对象的各个轮播区间与所述单轮周期的位置关系,确定所述各个业务对象在各个轮播区间中的步长;
根据所述轮播优先顺序、所述各个业务对象在所述共有轮播周期中的轮播区间、所述各个业务对象的轮播数以及所述各个业务对象在各个轮播区间中的步长,确定所述多个业务对象在所述共有轮播周期中的播放序列。
在一种可能的实现方式中,根据所述轮播优先顺序、所述各个业务对象在所述共有轮播周期中的轮播区间、所述各个业务对象的轮播数以及所述各个业务对象在各个轮播区间中的步长,确定所述多个业务对象在所述共有轮播周期中的播放序列,包括:
在第一业务对象的第一轮播区间的可用轮播位数少于所述第一业务对象的轮播数的情况下,调整所述第一业务对象以外的其他业务对象在所述第一轮播区间中占用的轮播位数,其中,所述第一业务对象为所述各个业务对象中的任意一个轮播对象,所述第一轮播区间为所述第一业务对象的任意一个轮播区间。
在一种可能的实现方式中,所述业务对象为广告。
在一种可能的实现方式中,在确定所述多个业务对象在所述共有轮播周期中的播放序列之后,所述方法还包括:
将所述播放序列保存在缓存中。
在一种可能的实现方式中,在将所述播放序列保存在缓存中之后,所述方法还包括:
在接收到业务对象播放请求的情况下,从所述缓存中获取所述播放序列;
根据所述播放序列确定用于响应所述业务对象播放请求的业务对象。
在一种可能的实现方式中,所有业务对象的轮播数与自身轮播周期的比值之和小于或等于1。
根据本公开的另一方面,提供了一种业务对象的处理装置,包括:
第一获取模块,用于获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数;
第一确定模块,用于根据所述各个业务对象的自身轮播周期确定所述多个业务对象的轮播优先顺序;
第二确定模块,用于根据所述各个业务对象的自身轮播周期的最小公倍数确定所述多个业务对象的共有轮播周期;
第三确定模块,用于根据所述轮播优先顺序、所述各个业务对象的自身轮播周期和所述各个业务对象的轮播数,确定所述多个业务对象在所述共有轮播周期中的播放序列。
在一种可能的实现方式中,所述第二确定模块用于:
将所述各个业务对象的自身轮播周期的最小公倍数确定为所述多个业务对象的共有轮播周期。
在一种可能的实现方式中,所述第三确定模块包括:
第一确定子模块,用于根据所述各个业务对象的自身轮播周期中最大的自身轮播周期确定所述共有轮播周期中的单轮周期;
第二确定子模块,用于根据所述各个业务对象的自身轮播周期确定所述各个业务对象在所述共有轮播周期中的轮播区间;
第三确定子模块,用于根据所述各个业务对象的各个轮播区间与所述单轮周期的位置关系,确定所述各个业务对象在各个轮播区间中的步长;
第四确定子模块,用于根据所述轮播优先顺序、所述各个业务对象在所述共有轮播周期中的轮播区间、所述各个业务对象的轮播数以及所述各个业务对象在各个轮播区间中的步长,确定所述多个业务对象在所述共有轮播周期中的播放序列。
在一种可能的实现方式中,所述第四确定子模块包括:
调整子模块,用于在第一业务对象的第一轮播区间的可用轮播位数少于所述第一业务对象的轮播数的情况下,调整所述第一业务对象以外的其他业务对象在所述第一轮播区间中占用的轮播位数,其中,所述第一业务对象为所述各个业务对象中的任意一个轮播对象,所述第一轮播区间为所述第一业务对象的任意一个轮播区间。
在一种可能的实现方式中,所述业务对象为广告。
在一种可能的实现方式中,所述装置还包括:
保存模块,用于将所述播放序列保存在缓存中。
在一种可能的实现方式中,所述装置还包括:
第二获取模块,用于在接收到业务对象播放请求的情况下,从所述缓存中获取所述播放序列;
第四确定模块,用于根据所述播放序列确定用于响应所述业务对象播放请求的业务对象。
在一种可能的实现方式中,所有业务对象的轮播数与自身轮播周期的比值之和小于或等于1。
根据本公开的另一方面,提供了一种业务对象的处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
本公开的各方面的业务对象的处理方法及装置通过获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数,根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期,并根据轮播优先顺序、各个业务对象的自身轮播周期和各个业务对象的轮播数,确定多个业务对象在共有轮播周期中的播放序列,由此能够根据各个业务对象的自身轮播周期和轮播数灵活确定播放序列,从而能够提高业务对象处理的灵活性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的业务对象的处理方法的流程图。该方法可以应用于服务器中。如图1所示,该方法包括步骤S11至步骤S14。
在一种可能的实现方式中,业务对象可以为广告。基于该实现方式,本实施例可以应用于广告轮播的处理中。
在另一种可能的实现方式中,业务对象可以为医生信息。基于该实现方式,本实施例可以应用于医院对医生的排班处理中。
在另一种可能的实现方式中,业务对象可以为电影。基于该实现方式,本实施例可以应用于电视的电影频道对电影轮播的处理中。
为了便于说明,在本实施例中,以业务对象为广告为例,对业务对象的处理方法进行说明。
在步骤S11中,获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数。
在一种可能的实现方式中,待播放的各个广告可以为属于相同定向的相同广告位的广告。相同定向的相同广告位的各个广告可以组成该广告位的轮播组合。其中,定向可以根据广告受众的以下至少一项信息确定:年龄、性别、职业、爱好和地理位置。
例如,待播放的广告包括广告1、广告2、广告3、广告4、广告5、广告6和广告7。其中,广告1的自身轮播周期为84,轮播数为13;广告2的自身轮播周期为204,轮播数为31;广告3的自身轮播周期为119,轮播数为18;广告4的自身轮播周期为357,轮播数为55;广告5的自身轮播周期为476,轮播数为73;广告6的自身轮播周期为476,轮播数为39;广告7的自身轮播周期为714,轮播数为109。
其中,广告的轮播数表示该广告在该广告的一个自身轮播周期中的轮播数。例如,广告1的自身轮播周期为84,轮播数为13,表示广告1在一个自身轮播周期84中占13轮。
在一种可能的实现方式中,所有业务对象的轮播数与自身轮播周期的比值之和小于或等于1。例如,广告1-7的轮播数与自身轮播周期的比值之和=13/84+31/204+18/119+55/357+73/476+39/476+109/714≤1。
作为该实现方式的一个示例,一个轮播组合中各个广告的轮播数与自身轮播周期的比值之和等于1,从而能使广告位的利用率达到最大。
需要说明的是,在本实施例中,相同广告内容、不同清晰度的广告可以作为同一支广告,也可以作为不同支广告,在此不作限定。
在步骤S12中,根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序。
在一种可能的实现方式中,根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序,可以包括:根据自身轮播周期由小到大的顺序,确定多个业务对象的轮播优先顺序。按照自身轮播周期由小到大的顺序对广告1-7进行排序,可以确定广告1-7的轮播优先顺序由先到后依次为广告1、广告3、广告2、广告4、广告5、广告6和广告7。其中,由于广告5的轮播数大于广告6的轮播数,因此可以将广告5排列在广告6前面。
在步骤S13中,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期。
在一种可能的实现方式中,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期,可以包括:将各个业务对象的自身轮播周期的最小公倍数确定为多个业务对象的共有轮播周期。例如,将广告1-7的自身轮播周期的最小公倍数1428确定为广告1-7的共有轮播周期。
在另一种可能的实现方式中,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期,可以包括:将各个业务对象的自身轮播周期的最小公倍数的N倍确定为多个业务对象的共有轮播周期。其中,N为大于或等于2的整数。
在步骤S14中,根据轮播优先顺序、各个业务对象的自身轮播周期和各个业务对象的轮播数,确定多个业务对象在共有轮播周期中的播放序列。
本实施例通过获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数,根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期,并根据轮播优先顺序、各个业务对象的自身轮播周期和各个业务对象的轮播数,确定多个业务对象在共有轮播周期中的播放序列,由此能够根据各个业务对象的自身轮播周期和轮播数灵活确定播放序列,从而能够提高业务对象处理的灵活性。
图2示出根据本公开一实施例的业务对象的处理方法步骤S14的一示例性的流程图。如图2所示,步骤S14可以包括步骤S141至步骤S144。
在步骤S141中,根据各个业务对象的自身轮播周期中最大的自身轮播周期确定共有轮播周期中的单轮周期。
作为本实施例的一个示例,可以将各个业务对象的自身轮播周期中最大的自身轮播周期确定为共有轮播周期中的单轮周期。例如,在广告1-7中,广告7的自身轮播周期最大,则将共有轮播周期1428中的单轮周期确定为714。
在步骤S142中,根据各个业务对象的自身轮播周期确定各个业务对象在共有轮播周期中的轮播区间。
例如,共有轮播周期中广告1的各个自身轮播周期对应的轮播区间分别为[1,84],[85,168],[169,252],[253,336],[337,420],[421,504],[505,588],[589,672],[673,756],[757,840],[841,924],[925,1008],[1009,1092],[1093,1176],[1177,1260],[1261,1344],[1345,1428]。共有轮播周期中广告2的各个自身轮播周期对应的轮播区间分别为[1,204],[205,408],[409,612],[613,816],[817,1020],[1021,1224],[1225,1428]。共有轮播周期中广告3的各个自身轮播周期对应的轮播区间分别为[1,119],[120,238],[239,357],[358,476],[477,595],[596,714],[715,833],[834,952],[953,1071],[1072,1190],[1191,1309],[1310,1428]。共有轮播周期中广告4的各个自身轮播周期对应的轮播区间分别为[1,357],[358,714],[715,1071],[1072,1428]。共有轮播周期中广告5的各个自身轮播周期对应的轮播区间分别为[1,476],[477,952],[953,1428]。共有轮播周期中广告6的各个自身轮播周期对应的轮播区间分别为[1,476],[477,952],[953,1428]。共有轮播周期中广告7的各个自身轮播周期对应的轮播区间分别为[1,714],[715,1428]。
在步骤S143中,根据各个业务对象的各个轮播区间与单轮周期的位置关系,确定各个业务对象在各个轮播区间中的步长。
在一种可能的实现方式中,在某一业务对象的某一轮播区间仅属于一个单轮周期,即该业务对象的该轮播区间不跨单轮周期的情况下,确定该业务对象在该轮播区间中的步长为第一步长;在某一业务对象的某一轮播区间属于两个单轮周期,即该业务对象的该轮播区间跨单轮周期的情况下,确定该业务对象在该轮播区间中的步长为第二步长。例如,在第一广告的第i个轮播区间仅属于一个单轮周期的情况下,确定第一广告在第i个轮播区间中的步长为第一步长,其中,第一广告为各个广告中的任意一个广告,i为正整数;在第一广告的第i个轮播区间属于两个单轮周期的情况下,确定第一广告在第i个轮播区间中的步长为第二步长。如图4所示,例如,第一步长为1,第二步长为0。由于广告1的轮播区间[673,756]属于两个单轮周期,因此在轮播区间[673,756]中,按照步长0排列13个广告1。由于广告2的轮播区间[613,816]属于两个单轮周期,因此在轮播区间[613,816]中,按照步长0排列31个广告2。由于广告5的轮播区间[477,952]属于两个单轮周期,因此在轮播区间[477,952]中,按照步长0排列73个广告5。由于广告6的轮播区间[477,952]属于两个单轮周期,因此在轮播区间[477,952]中,按照步长0排列39个广告6。由于广告1的轮播区间[757,840]仅属于一个单轮周期,因此在轮播区间[757,840]中,按照步长1排列13个广告1。
在另一种可能的实现方式中,各个业务对象在各个轮播区间中的步长均为第一步长。例如,第一步长可以为1。
在另一种可能的实现方式中,各个业务对象在各个轮播区间中的步长均为第二步长。例如,第二步长可以为0。
在步骤S144中,根据轮播优先顺序、各个业务对象在共有轮播周期中的轮播区间、各个业务对象的轮播数以及各个业务对象在各个轮播区间中的步长,确定多个业务对象在共有轮播周期中的播放序列。
例如,对于广告1,需要在广告1的各个自身轮播周期对应的轮播区间中分别排列13个广告1,即,需要在轮播区间[1,84]中排列13个广告1,在轮播区间[85,168]排列13个广告1,在轮播区间[169,252]排列13个广告1,以此类推。
在一种可能的实现方式中,在共有轮播周期包括多个单轮周期的情况下,可以先排列排序在前的单轮周期中的所有广告,再排列排序在后的单轮周期中的所有广告。例如,共有轮播周期[1,1428]包括单轮周期[1,714]和[715,1428],可以先在单轮周期[1,714]中依次排列广告1、广告3、广告2、广告4、广告5、广告6和广告7,再在单轮周期[1,714]的空闲位置和单轮周期[715,1428]中依次排列广告1、广告3、广告2、广告4、广告5、广告6和广告7。
图3示出根据本公开一实施例的业务对象的处理方法中先在单轮周期[1,714]中排列广告的示意图。在图3中,0表示空闲位置,即尚未排列广告的位置。在单轮周期[1,714]中,可以由先到后依次进行以下操作:在广告1的轮播区间[1,84]中排列13个广告1,在广告1的轮播区间[85,168]中排列13个广告1,在广告1的轮播区间[169,252]中排列13个广告1,在广告1的轮播区间[253,336]中排列13个广告1,在广告1的轮播区间[337,420]中排列13个广告1,在广告1的轮播区间[421,504]中排列13个广告1,在广告1的轮播区间[505,588]中排列13个广告1,在广告1的轮播区间[589,672]中排列13个广告1,在广告3的轮播区间[1,119]中排列18个广告3,在广告3的轮播区间[120,238]中排列18个广告3,在广告3的轮播区间[239,357]中排列18个广告3,在广告3的轮播区间[358,476]中排列18个广告3,在广告3的轮播区间[477,595]中排列18个广告3,在广告3的轮播区间[596,714]中排列18个广告3,在广告2的轮播区间[1,204]中排列31个广告2,在广告2的轮播区间[205,408]中排列31个广告2,在广告2的轮播区间[409,612]中排列31个广告2,在广告4的轮播区间[1,357]中排列55个广告4,在广告4的轮播区间[358,714]中排列55个广告4,在广告5的轮播区间[1,476]中排列73广告5,在广告6的轮播区间[1,476]中排列39个广告6,在广告7的轮播区间[1,714]中排列109个广告7。如图2所示,第一个单轮周期[1,714]已完成排序,第二个单轮周期[715,1428]未开始排序。在排列完成属于第一个单轮周期[1,714]的各个广告的轮播区间后,由于尚未排列跨两个单轮周期的各个广告的轮播区间,因此第一个单轮周期[1,714]中仍有空闲位置。
图4示出根据本公开一实施例的业务对象的处理方法中先在单轮周期[1,714]中排列广告,再在单轮周期[1,714]的空闲位置和单轮周期[715,1428]中排列广告的示意图。如图4所示,在第一个单轮周期[1,714]中排列完成属于第一个单轮周期[1,714]的各个广告的轮播区间后,在第一个单轮周期[1,714]的空闲位置和第二个单轮周期[715,1428]中,再按照广告1、广告3、广告2、广告4、广告5、广告6和广告7的先后顺序在各个广告的自身轮播周期中排列各广告。
在一种可能的实现方式中,根据轮播优先顺序、各个业务对象在共有轮播周期中的轮播区间、各个业务对象的轮播数以及各个业务对象在各个轮播区间中的步长,确定多个业务对象在共有轮播周期中的播放序列,可以包括:在第一业务对象的第一轮播区间的可用轮播位数少于第一业务对象的轮播数的情况下,调整第一业务对象以外的其他业务对象在第一轮播区间中占用的轮播位数,其中,第一业务对象为各个业务对象中的任意一个轮播对象,第一轮播区间为第一业务对象的任意一个轮播区间。
图5示出根据本公开一实施例的业务对象的处理方法中广告6(第二广告)在轮播区间[477,952](第一轮播区间)中的已排位数小于广告6的轮播数39的示意图。如图5所示,轮播区间[477,952]已排满,广告6在轮播区间[477,952]中的已排位数为38,而广告6的轮播数为39,即,在轮播区间[477,952]中排不下39个广告6。广告6的轮播数与广告6在轮播区间[477,952]中的已排位数的差值为1(L)。
图6示出根据本公开一实施例的业务对象的处理方法中将轮播区间[715,952](第二轮播区间)中的1个广告4(第三广告)移动至轮播区间[953,1071](第三轮播区间)中,并在轮播区间[477,952]中排列剩余的1个广告6的示意图。如图6所示,在广告6在轮播区间[477,952]中的已排位数小于广告6的轮播数39的情况下,可以先判断广告5是否能在轮播区间[477,952]中为广告6空出位置。由于广告5的轮播区间与广告6相同,若将轮播区间[477,952]中的1个广告5移动至轮播序号953之后,则将导致广告5在轮播区间[477,952]中的已排位数小于广告5的轮播数73,因此,判定广告5不能在轮播区间[477,952]中为广告6空出位置。再判断广告4是否能在轮播区间[477,952]中为广告6空出位置。广告4的第3个自身轮播周期对应的轮播区间为[715,1071](第四轮播区间),轮播区间[715,952]和轮播区间[953,1071]分别为轮播区间[715,1071]的子区间,广告4在轮播区间[715,952]中的已排位数大于1,且轮播区间[953,1071]中的空闲排位数大于1,因此,可以判定广告4能在轮播区间[477,952]中为广告6空出位置。在这种情况下,可以将轮播区间[715,952]中的1个广告4移动至轮播区间[953,1071]中,并在轮播区间[477,952]中排列剩余的1个广告6,例如,将原轮播序号716的广告4移动至轮播序号1007,将轮播序号716用于排列广告6。
图7示出根据本公开一实施例的业务对象的处理方法中共有轮播周期[1,1428]对应的播放序列的示意图。
在一种可能的实现方式中,在确定多个业务对象在共有轮播周期中的播放序列之后,该方法还可以包括:将播放序列保存在缓存中。通过将播放序列保持在缓存中,可以提高响应业务对象播放请求的速度。例如,在生成了某一广告位对应的播放序列后,将该广告位对应的播放序列保存在缓存中,由此在接收到来自于客户端的该广告位对应的广告请求时,无需重复生成该广告位对应的播放序列,而可以直接根据缓存中保存的该广告位对应的播放序列向客户端返回广告,从而能够大大提高响应广告请求的速度。
在一种可能的实现方式中,可以将播放序列保持在数据库中,从而可以对播放序列进行备份。
在一种可能的实现方式中,在将播放序列保存在缓存中之后,该方法还可以包括:在接收到业务对象播放请求的情况下,从缓存中获取播放序列;根据播放序列确定用于响应业务对象播放请求的业务对象。例如,上一次响应的轮播序号为9,则可以确定本次用于响应该广告请求的轮播序号为10,轮播序号10对应的广告为广告3。又如,例如,上一次响应的轮播序号为715,则可以确定用于响应该广告请求的轮播序号为716,轮播序号716对应的广告为广告6。
在业务对象为广告的情况下,本实施例可以根据待播放的各个广告的自身轮播周期和轮播数灵活排列各个广告,各个广告的轮播周期可以不同,由此不限制广告主购买广告位中固定的一轮或多轮,从而能够提高广告位的利用率以及广告轮播的灵活性。
图8示出根据本公开一实施例的业务对象的处理方法步骤S144的一示例性的流程图。如图8所示,该方法可以包括步骤S1441至步骤S1445。
在步骤S1441中,根据轮播优先顺序、各个业务对象在共有轮播周期中的轮播区间、各个业务对象的轮播数以及各个业务对象在各个轮播区间中的步长,在单轮周期中排列各个业务对象。
在步骤S1442中,判断该单轮周期中的各个业务对象是否排列完成,若是,则执行步骤S1443,否则执行步骤S1444。
在步骤S1443中,判断是否已生成共有轮播周期对应的播放序列,若是,则结束,否则返回步骤S1441。
在步骤S1443中,可以获取步骤S1441的执行次数。若单轮周期与该执行次数的乘积等于共有轮播周期,则可以判定已生成共有轮播周期对应的播放序列;若单轮周期与该执行次数的乘积小于共有轮播周期,则可以判定未生成共有轮播周期对应的播放序列。例如,在第一个单轮周期[1,714]中排列各个广告后,步骤S1441的执行次数为1,单轮周期为714,此时单轮周期与该执行次数的乘积小于1428,因此可以判定未生成共有轮播周期对应的播放序列,并返回步骤S1442,继续在第二个单轮周期[715,1428]中排列各个广告。
在步骤S1444中,对该单轮周期中排列异常的业务对象进行处理,并返回步骤S1443。
图9示出根据本公开一实施例的业务对象的处理方法步骤S1444的一示例性的流程图。如图9所示,步骤S1444可以包括步骤S14441至步骤S14444。
在步骤S14441中,获取该单轮周期中排列异常的业务对象的异常类型。
在步骤S14442中,在第二业务对象在该单轮周期中排列异常的异常类型为第二业务对象的某一轮播区间横跨该单轮周期与下一单轮周期的情况下,将第二业务对象的该轮播区间放入下一个单轮周期进行处理。
其中,第二业务对象可以为各个业务对象中的任意一个业务对象。
例如,广告1在第一个单轮周期[1,714]中排列异常的异常类型为,广告1的轮播区间[673,756]横跨第一个单轮周期[1,714]和第二个单轮周期[715,1428],则在排列第一个单轮周期[1,714]不排列广告1的轮播区间[673,756],在排列第二个单轮周期[715,1428]时再排列广告1的轮播区间[673,756]。
在步骤S14443中,在第三业务对象在该单轮周期中排列异常的异常类型为,第一轮播区间已排满,且第三业务对象在第一轮播区间中的已排位数小于第三业务对象的轮播数的情况下,计算第三业务对象的轮播数与第三业务对象在第一轮播区间中的已排位数的差值L。
其中,第三业务对象为各个业务对象中的任意一个业务对象,第一轮播区间为第三业务对象的第j个自身轮播周期对应的轮播区间,j和L均为正整数。
在步骤S14444中,在第四业务对象在第二轮播区间的已排位数大于或等于L,且第三轮播区间中的空闲排位数大于或等于L的情况下,将第二轮播区间中的L个第四业务对象移动至第三轮播区间中,并在第一轮播区间中排列剩余的L个第三业务对象。
其中,在第四轮播区间的下界大于第一轮播区间的下界的情况下,第二轮播区间的下界等于第四轮播区间的下界;在第四轮播区间的下界小于或等于第一轮播区间的下界的情况下,第二轮播区间的下界等于第一轮播区间的下界;第四轮播区间为第四业务对象的第k个自身轮播周期对应的轮播区间,k为正整数,第四轮播区间的上界大于第一轮播区间的上界,第二轮播区间的上界等于第一轮播区间的上界,第三轮播区间的下界等于第一轮播区间的上界加1,第三轮播区间的上界等于第四轮播区间的上界。
图10示出根据本公开一实施例的业务对象的处理装置的框图。如图10所示,该装置包括:第一获取模块31,用于获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数;第一确定模块32,用于根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序;第二确定模块33,用于根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期;第三确定模块34,用于根据轮播优先顺序、各个业务对象的自身轮播周期和各个业务对象的轮播数,确定多个业务对象在共有轮播周期中的播放序列。
在一种可能的实现方式中,第二确定模块33用于:将各个业务对象的自身轮播周期的最小公倍数确定为多个业务对象的共有轮播周期。
图11示出根据本公开一实施例的业务对象的处理装置的一示例性的框图。如图11所示:
在一种可能的实现方式中,第三确定模块34包括:第一确定子模块341,用于根据各个业务对象的自身轮播周期中最大的自身轮播周期确定共有轮播周期中的单轮周期;第二确定子模块342,用于根据各个业务对象的自身轮播周期确定各个业务对象在共有轮播周期中的轮播区间;第三确定子模块343,用于根据各个业务对象的各个轮播区间与单轮周期的位置关系,确定各个业务对象在各个轮播区间中的步长;第四确定子模块344,用于根据轮播优先顺序、各个业务对象在共有轮播周期中的轮播区间、各个业务对象的轮播数以及各个业务对象在各个轮播区间中的步长,确定多个业务对象在共有轮播周期中的播放序列。
在一种可能的实现方式中,第四确定子模块344包括:调整子模块,用于在第一业务对象的第一轮播区间的可用轮播位数少于第一业务对象的轮播数的情况下,调整第一业务对象以外的其他业务对象在第一轮播区间中占用的轮播位数,其中,第一业务对象为各个业务对象中的任意一个轮播对象,第一轮播区间为第一业务对象的任意一个轮播区间。
在一种可能的实现方式中,业务对象为广告。
在一种可能的实现方式中,该装置还包括:保存模块35,用于将播放序列保存在缓存中。
在一种可能的实现方式中,该装置还包括:第二获取模块36,用于在接收到业务对象播放请求的情况下,从缓存中获取播放序列;第四确定模块37,用于根据播放序列确定用于响应业务对象播放请求的业务对象。
在一种可能的实现方式中,所有业务对象的轮播数与自身轮播周期的比值之和小于或等于1。
本实施例通过获取待播放的多个业务对象中各个业务对象的自身轮播周期和轮播数,根据各个业务对象的自身轮播周期确定多个业务对象的轮播优先顺序,根据各个业务对象的自身轮播周期的最小公倍数确定多个业务对象的共有轮播周期,并根据轮播优先顺序、各个业务对象的自身轮播周期和各个业务对象的轮播数,确定多个业务对象在共有轮播周期中的播放序列,由此能够根据各个业务对象的自身轮播周期和轮播数灵活确定播放序列,从而能够提高业务对象处理的灵活性。
图12是根据一示例性实施例示出的一种用于业务对象的处理的装置1900的框图。例如,装置1900可以被提供为一服务器。参照图12,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是能够保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以但不限于是电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。