发明内容
针对现有技术中所存在的不足,本发明提供的播放任务的排期方法,其解决了现有技术中对广告投屏设备中播放内容出现排期效率低、漏排或排期冲突的问题,保证了任务播放的完整性和连续性,提高了广告内容和营销内容的宣传效果。
本发明提供一种播放任务的排期方法,所述方法包括:获取待排期的初始播放任务列表,所述初始播放任务列表中包含若干播放任务以及每个播放任务的限播次数、单播时长、优先级和播放时间区间;根据每个播放任务的限播次数,将所述初始播放任务列表生成有限播次数的第一中间任务列表和无限播次数的第二中间任务列表;生成包含若干时间区间的时间区间列表,根据时间区间列表和每个播放任务的播放时间区间,将所述第一中间任务列表生成目标区间任务列表,所述目标区间任务列表包括每个时间区间中每个播放任务的实排次数;根据所述每个时间区间中每个播放任务的实排次数,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,生成所述播放任务的目标排期列表。
可选地,生成包含若干时间区间的时间区间列表,根据时间区间列表和每个播放任务的播放时间区间,将所述第一中间任务列表生成目标区间任务列表,所述目标区间任务列表包括每个时间区间中每个播放任务的实排次数,包括:根据所述初始播放任务列表中每个播放任务的播放时间区间,生成包含若干时间区间的时间区间列表;遍历所述时间区间列表和所述第一中间任务列表,得到第一时间区间任务列表;遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的实排次数,得到所述目标区间任务列表。
可选地,遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的实排次数,得到所述目标区间任务列表,包括:遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的应排次数和实排次数,得到第二时间区间任务列表;根据每个播放任务的单播时长和所述应排次数,获取到每个时间区间的应播总时长;判断在所述第二时间区间任务列表中是否存在时间区间的应播总时长大于所述时间区间的区间时长;当存在所述时间区间的应播总时长大于所述时间区间的区间时长时,根据所述时间区间中每个播放任务的优先级属性,调整相应播放任务的实排次数;当不存在所述时间区间的应播总时长大于所述时间区间的区间时长时,得到所述目标区间任务列表。
可选地,当不存在所述时间区间的应播总时长大于所述时间区间的区间时长时,得到所述目标区间任务列表,包括:获取未排播任务列表,所述未排播任务列表包括总实排次数小于总应排次数的播放任务;判断所述未排播任务列表是否存在播放任务;当所述未排播任务列表中不存在所述播放任务时,将所述第二中间任务列表作为所述目标区间任务列表。
可选地,当所述未排播任务列表中存在所述播放任务时,所述方法还包括:获取所述未排播任务列表中优先级最高的目标任务;在所述第二时间区间任务列表中,获取包含所述目标任务且有剩余时间的目标时间区间列表;根据所述目标时间区间列表、所述目标任务的单播时长和所述目标任务的第一未排播次数,将所述目标任务设置在相应的目标时间区间中,并调整相应目标时间区间内所述目标任务的实排次数;当所述目标任务的总实排次数小于所述总应排次数时,将所述目标任务的第二未排播次数记录到未排期列表中,并在所述未排播任务列表中删除所述目标任务;当所述目标任务的总实排次数大于或等于所述总应排次数时,在所述未排播任务列表中删除所述目标任务。
可选地,根据所述每个时间区间中每个播放任务的实排次数,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,生成所述播放任务的目标排期列表,包括:根据所述每个时间区间中每个播放任务的实排次数,获取每个时间区间的剩余时间;根据所述第二中间任务列表中每个播放任务的播放时长和所述每个时间区间的剩余时间,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到播放任务的初始排期列表;根据所述初始排期列表中每个播放任务的任务类型,调整所述初始排期列表中每个播放任务的播放顺序,生成所述播放任务的目标排期列表。
可选地,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到播放任务的初始排期列表,包括:将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到第一区间任务列表;获取所述第一区间任务列表中每个时间区间内剩余的时间碎片;将每个时间区间内剩余的时间碎片进行整合,得到至少一个时间碎片区间;选择相匹配的播放任务对所述至少一个时间碎片区间进行填充,得到所述播放任务的初始排期列表。
可选地,获取到每个时间区间中每个播放任务的应排次数和实排次数,包括:获取当前时间区间中的每个播放任务;根据所述每个播放任务,获取与所述当前时间区间相匹配的播放时间区间;获取当前时间区间的区间时长与所述播放时间区间的总时长的比值;根据所述比值和所述每个播放任务的限播次数,得到所述当前时间区间中每个播放任务的应排次数;根据所述应排次数,得到所述实排次数。
可选地,遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的实排次数,得到所述目标区间任务列表,包括:根据每个播放任务的优先级和每个时间区间的区间时长,获取到每个时间区间中每个播放任务的实排次数;根据所述每个时间区间中每个播放任务的实排次数,将所述第一时间区间任务列表中有限播次数的播放任务转换成第一连续播放任务,得到所述目标区间任务列表。
可选地,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,生成所述播放任务的目标排期列表,包括:将所述第二中间任务列表中的播放任务转换成第二连续播放任务;将所述第二连续播放任务分配到所述目标区间任务列表中;根据所述每个播放任务的优先级,对每个时间区间中的所述第一连续播放任务和所述第二连续播放任务进行排序,生成所述播放任务的目标排期列表。
相比于现有技术,本发明具有如下有益效果:
本发明先对有限播次数的播放任务按照时间区间进行排期,使生成的目标排期列表中优先保证有限播次数要求的播放任务的完整度;本发明再将没有限播次数的播放任务穿插排列在相应有剩余时间的时间区间内,有效的避免播放任务的排期冲突,还解决了现有技术通过人工手动排期出现的排期效率低、误排或漏排的问题,保证了任务播放的完整性和连续性,提高了广告内容和营销内容的宣传效果。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1所示为本发明实施例提供的一种播放任务的排期方法的流程示意图,如图1所示,所述播放任务的排期方法具体包括以下步骤:
步骤S101,获取待排期的初始播放任务列表,其中所述初始播放任务列表中包含若干播放任务以及每个播放任务的限播次数、单播时长、优先级和播放时间区间。
需要说明的是,在本实施例中,所述播放任务包括但不限于广告任务和营销任务,所述广告任务来自广告主的广告,通常是投放固定时长(例如15s)的广告,可以为图片或者视频,且广告投放任务都是具有播放次数要求的,例如要求每天该广告要播放120次;所述营销任务来自媒体端(超市或者门店)的自由营销内容,例如店内的促销水果,可以为图片或者视频,并且时长通常不固定;所述营销任务通常对播放次数没有限制,因此常设计为在任务播放设备的空闲时段轮流播放。广告任务和营销任务都可以支持设定播放开始结束时间或者播放周期,且广告任务的优先级高于营销任务,所以需要保证广告任务的优先播放。
进一步说明,每个播放任务的属性包括但不限于任务标识、任务名称、播放时间区间单次播放时长、任务类型(广告任务还是营销任务)、优先级和限播次数(有限播次数和无限播次数),由若干个待排期的播放任务组成所述待排期的初始播放任务列表(简称S1表),S1如下表所示:
任务标识 |
任务名称 |
播放时间区间 |
限播次数 |
单次播放时长 |
任务类型 |
优先级 |
1 |
任务1 |
09:00-11:00 |
20 |
30秒 |
广告任务 |
1 |
2 |
任务2 |
08:00-12:00 |
120 |
30秒 |
广告任务 |
2 |
3 |
任务3 |
08:00-22:00 |
无 |
3分钟 |
营销任务 |
3 |
步骤S102,根据每个播放任务的限播次数,将所述初始播放任务列表生成有限播次数的第一中间任务列表和无限播次数的第二中间任务列表。
在本发明的实施例中,根据限播次数属性遍历所述S1表中的每个播放任务,将有播放次数要求的播放任务生成第一中间任务列表(简称S2表),将没有播放次数要求的播放任务生成第二中间任务列表(简称S3表),其中,所述有限播次数即为有播放次数要求,所述无限播次数即为没有限播次数要求,由此可见,由上述S1表中的任务1和任务2组成所述S2表,任务3组成所述S3表。将所述S1表分成所述S2表和S3表的主要目的是尽量确保有播放次数要求的任务能够按照要求完成播放。
步骤S103,生成包含若干时间区间的时间区间列表,根据时间区间列表和每个播放任务的播放时间区间,将所述第一中间任务列表生成目标区间任务列表,所述目标区间任务列表包括每个时间区间中每个播放任务的实排次数。
在本实施例中,步骤S103的具体实现过程如图2所示,具体包括如下步骤:
步骤S201,根据所述初始播放任务列表中每个播放任务的播放时间区间,生成包含若干时间区间的时间区间列表;
需要说明的是,根据S1表中每个播放任务的播放时间区间,将S1表中存在时间交叉的区间进行分开排列,生成时间区间列表(简称TL表),举例说明,上述S1表中的播放时间区间包括09:00-11:00,08:00-12:00,08:00-22:00,则TL表包括的时间区间为08:00-09:00,09:00-11:00,11:00-12:00,12:00-22:00,即可将同一任务分配到不同的时间区间。在本实施例中,综合所有任务时间段来划分出不同的时间区间来承载区间内有效的任务,充分利用时间区间中有效的时间来承载其他高优先级播放任务,并且使播放任务在设定的时间范围内播放,不要提前播放,也不要超出设定播放时间。
步骤S202,遍历所述时间区间列表和所述第一中间任务列表,得到第一时间区间任务列表;
具体地,遍历所述TL表和只包括有限播次数的播放任务的S2表,将S2表中的播放任务按照时间区间生成第一时间区间任务列表(简称M1表),M1表如下表所示:
时间区间 |
任务名称 |
08:00-09:00 |
任务2 |
09:00-11:00 |
任务1、任务2 |
11:00-12:00 |
任务2 |
12:00-22:00 |
|
步骤S203,遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的应排次数和实排次数,得到第二时间区间任务列表;
在本实施例中,步骤S203具体包括:获取当前时间区间中的每个播放任务;根据所述每个播放任务,获取与所述当前时间区间相匹配的播放时间区间;获取当前时间区间的区间时长与所述播放时间区间的总时长的比值;根据所述比值和所述每个播放任务的限播次数,得到所述当前时间区间中每个播放任务的应排次数;根据所述应排次数,得到所述实排次数。
需要说明的是,在步骤S203中需要计算出每个时间区间中每个播放任务的应排次数和实排次数,所述当前时间区间以09:00-11:00为例,在09:00-11:00这个时间区间的播放任务为任务1和任务2;根据所述每个播放任务获取与所述当前时间区间相匹配的播放时间区间,解释为任务1中与所述当前时间区间相匹配的播放时间区间为09:00-11:00,任务2中与所述当前时间区间相匹配的播放时间区间为08:00-12:00,其中与当前时间区间相匹配的播放时间区间可以理解为当前时间区间被包含在所述播放时间区间;
进一步地,获取当前时间区间的区间时长与所述播放时间区间的总时长的比值;根据所述比值和所述每个播放任务的限播次数,得到所述当前时间区间中每个播放任务的应排次数,解释为:当前时间区间09:00-11:00的区间时长为:2小时,任务1的播放时间区间09:00-11:00的总时长为:2小时,任务2的播放时间区间08:00-12:00的总时长为:4小时,则任务1在当前时间区间09:00-11:00的应排次数=(2/2)*20=20次,任务2在当前时间区间09:00-11:00的应排次数=(2/4)*120=60次,其中20是任务1于其播放时间区间内的限播次数,120是任务2于其播放时间区间内的限播次数,可以从上述S1表中得出,在本步骤中将计算出的应排次数直接赋值于实排次数,即可获取到每个时间区间中每个播放任务的应排次数和实排次数,从而得到第二时间区间任务列表(简称M2表),M2表如下表所示:
步骤S204,根据每个播放任务的单播时长和所述应排次数,获取到每个时间区间的应播总时长;
具体地,根据S2表中每个播放任务的单播时长和M2表中每个播放任务在每个时间区间的应排次数,可以计算出每个时间区间的应播总时长,例如时间区间08:00-09:00的应播总时长=任务2的单播时长*任务2的应排次数=30秒*30=900秒,时间区间09:00-11:00的应播总时长=任务1的单播时长*任务1的应排次数+任务2的单播时长*任务2的应排次数=30秒*20+30秒*30=600+900=1500秒。
步骤S205,判断是否存在时间区间的应播总时长大于时间区间的区间时长,当存在时间区间的应播总时长大于时间区间的区间时长时执行步骤S206,当不存在时间区间的应播总时长大于时间区间的区间时长时执行步骤S207;
具体地,步骤S204中计算出每个时间区间的应播总时长,本步骤需要将每个时间区间的应播总时长和每个时间区间的区间时长进行比较,例如时间区间08:00-09:00的应播总时长为900秒,时间区间08:00-09:00的区间时长为3600秒,时间区间09:00-11:00的应播总时长为1500秒,时间区间09:00-11:00的区间时长为7200秒,由此可知时间区间08:00-09:00和时间区间09:00-11:00的应播时长都小于区间时长。
步骤S206,根据所述时间区间中每个播放任务的优先级属性,调整相应播放任务的实排次数,继续执行步骤S205;
需要说明的是,如果存在时间区间的应播时长大于时间区间的区间时长时,需要依次减少当前时间区间中优先级低的播放任务的实排次数,直到所述时间区间的应播时长小于或等于时间区间的区间时长。
步骤S207,获取未排播任务列表,所述未排播任务列表包括总实排次数小于总应排次数的播放任务;
需要说明的是,根据步骤S206中对相应播放任务的实排次数进行调整后,表M2中存在总实排次数小于总应排次数的播放任务,对M2表进行调整后如下表所示:
由此可知,将应排次数减去实排次数可以得到未排播任务列表(简称S4表),S4表如下表所示:
步骤S208,判断未排播任务列表是否存在播放任务,当所述未排播任务列表中不存在播放任务时执行步骤S209,当所述未排播任务列表中存在播放任务时执行步骤S210;
步骤S209,将所述第二中间任务列表作为所述目标区间任务列表;
需要说明的是,如果未排播任务列表中不存在未排播的播放任务表示表S4为空,也就是说未执行步骤S206,未对步骤S203中生成的M2表进行实排次数的调整,即将步骤S203中生成的第二中间任务列表M2作为所述目标区间任务列表。
步骤S210,获取所述未排播任务列表中优先级最高的目标任务;
具体地,当S4表不为空时表示存在未排播的播放任务,也就是执行步骤S206相应播放任务的实排次数进行过调整,见步骤S206中所述对M2表进行调整后的表,如步骤S207中所示的S4表存在任务4和任务5有未排播次数,也就是在假如任务4的优先级最高时,则先对S4表中的任务4进行插排,具体插排过程为:首先,将所述任务4作为当前插排的目标任务,在调整后的M2表中查找包括所述目标任务的目标时间区间且所述目标时间区间还有剩余时间,例如调整后的M2表中包括任务4的时间区间有08:00-09:00,09:00-11:00,11:00-12:00,12:00-22:00,但是时间区间08:00-09:00和时间区间09:00-11:00都没有剩余时间,而时间区间11:00-12:00和时间区间12:00-22:00有剩余时间,则将时间区间11:00-12:00和和时间区间12:00-22:00作为所述目标任务的目标时间区间并生成目标时间区间列表,需要说明的是此为示例性说明,有的时间区间可能并未在上述M2表中体现。其次,根据所述目标时间区间列表、所述目标任务的单播时长和所述目标任务的第一未排播次数,将所述目标任务设置在相应的目标时间区间中,并调整相应目标时间区间内所述目标任务的实排次数;如果所述目标任务不存在相应的目标时间区间列表时,即可将所述目标任务设置在其他有剩余时间的时间区间内。然后,再依次执行:
步骤S211,在所述第二时间区间任务列表中,获取包含所述目标任务且有剩余时间的目标时间区间列表;
步骤S212,根据目标时间区间列表,将目标任务设置在相应的目标时间区间中,并调整相应目标时间区间内所述目标任务的实排次数;
步骤S213,判断目标任务的总实排次数是否小于总应排次数,当所述目标任务的总实排次数小于总应排次数时执行步骤S215,当所述目标任务的总实排次数大于或等于总应排次数时执行步骤S214;
步骤S214,在所述未排播任务列表中删除所述目标任务,继续执行步骤S208;
需要说明的是,当所述目标任务的总实排次数大于或等于总应排次数时,表示所述目标任务已经排播完毕,从所述S4表中删除所述目标任务,并且继续循环判断S4表中是否存在其他未排播任务,直到S4表中没有未排播任务为止。
步骤S215,将所述目标任务的第二未排播次数记录到未排期列表中,继续执行步骤S214;
需要说明的是,当所述目标任务的总实排次数小时总应排次数时,表示所述目标任务剩余的第二未排播次数无法排播到当前的任何时间区间中,因此将所述目标任务的第二未排播次数记录到未排期列表中,并且继续执行步骤S214对当前未排播完毕的目标任务进行删除操作。
步骤S104,根据所述每个时间区间中每个播放任务的实排次数,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,生成所述播放任务的目标排期列表。
需要说明的是,上述步骤S103只是对第一中间任务列表中有限播次数的播放任务进行排播生成的目标区间任务列表,步骤S104是将第二中间任务列表中无限播次数的播放任务插播到所述目标区间任务列表中,生成相应的目标排期列表,其中步骤S104的具体插播过程包括:根据所述每个时间区间中每个播放任务的实排次数,获取每个时间区间的剩余时间;根据所述第二中间任务列表中每个播放任务的播放时长和所述每个时间区间的剩余时间,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到播放任务的初始排期列表;根据所述初始排期列表中每个播放任务的任务类型,调整所述初始排期列表中每个播放任务的播放顺序,生成所述播放任务的目标排期列表。
具体地,由于第二中间任务列表中的播放任务只有单播时长没有限播次数的限制,计算出目标区间任务列表中每个时间区间的剩余时间,将第二中间任务列表中的播放任务根据循环使用的规则对有剩余时间的时间区间进行填充得到初始排期列表,且填充的时间区间的剩余时间大于或等于相应播放任务单播时长的整数倍;再根据任务类型穿插排列的规则,对初始排期列表中每个播放任务的播放顺序进行调整,生成目标排期列表。
相比于现有技术,本实施例具有如下有益效果:
本实施例先对有限播次数的播放任务按照时间区间进行排期,使生成的目标排期列表中优先保证有限播次数要求的播放任务的完整度;本实施例再将没有限播次数的播放任务穿插排列在相应有剩余时间的时间区间内,有效的避免播放任务的排期冲突,还解决了现有技术通过人工手动排期出现的排期效率低、误排或漏排的问题,保证了任务播放的完整性和连续性,提高了广告内容和营销内容的宣传效果。
在本发明的另一实施例中,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到播放任务的初始排期列表,包括:将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,得到第一区间任务列表;获取所述第一区间任务列表中每个时间区间内剩余的时间碎片;将每个时间区间内剩余的时间碎片进行整合,得到至少一个时间碎片区间;选择相匹配的播放任务对所述至少一个时间碎片区间进行填充,得到所述播放任务的初始排期列表。
需要说明的是,在本实施例中,所述时间碎片指的是在所述第一区间任务列表中,出现无法用任何任务进行填充的小的时间段,例如在时间区间08:00-09:00中有剩余5秒,但是任何一个播放任务的单播时长都大于5秒,导致剩余的时间中不能通过任何播放任务来填充,因此在时间区间08:00-09:00中剩余的5秒为时间碎片,本实施通过将相邻两个或者多个时间碎片进行合并形成一个或者多个较长的时间碎片区间,再通过相匹配的播放任务对所述一个或者多个较长的时间碎片区间进行填充,使得初始排期列表中不存在时间碎片或者未进行任务填充的剩余时间,假如时间区间08:00-09:00中有5秒的时间碎片,时间区间09:00-10:00有10秒的时间碎片,则将两个时间碎片合并成15秒的时间碎片区间,通过从初始播放任务列表或者其他备用播放任务中选择出单播时长为15秒的播放任务对所述时间碎片区间进行填充,通过剩余时间合并来尽量降低时间碎片带来的任务播放不完整的风险,因此本实施例通过对时间碎片进行整合,既保证了每个播放任务播放的完整性,还避免出现时间碎片影响播放效果的连续性。
综上所述,本实施例的有益效果还包括:(1)有效的避免任务拥堵时段内播放冲突,把由于冲突而导致不能播放的任务分散在其他可播放时间段内;(2)保证任务排布基本均匀,避免出现在任务播放时间区间内的某一段时间任务集中播放的情况;(3)通过剩余时间合并来尽量降低时间碎片带来的任务播放不完整的风险;(4)最大限度保证有播放次数要求的高优先级任务的完成度。
在本发明的一个实施例中,遍历所述第一时间区间任务列表,获取到每个时间区间中每个播放任务的实排次数,得到所述目标区间任务列表,包括:根据每个播放任务的优先级和每个时间区间的区间时长,获取到每个时间区间中每个播放任务的实排次数;根据所述每个时间区间中每个播放任务的实排次数,将所述第一时间区间任务列表中有限播次数的播放任务转换成第一连续播放任务,得到所述目标区间任务列表。
在本发明的一个实施例中,将所述第二中间任务列表中的播放任务分配到所述目标区间任务列表中的相应时间区间内,生成所述播放任务的目标排期列表,包括:将所述第二中间任务列表中的播放任务转换成第二连续播放任务;将所述第二连续播放任务分配到所述目标区间任务列表中;根据所述每个播放任务的优先级,对每个时间区间中的所述第一连续播放任务和所述第二连续播放任务进行排序,生成所述播放任务的目标排期列表。
图3所示为本发明实施例提供的另一种播放任务的排期方法的流程示意图,如图3所示,在本实施例中,根据所述第一时间区间任务列表,生成所述播放任务的目标排期列表,包括以下步骤:
步骤S301,根据每个播放任务的优先级和每个时间区间的区间时长,获取到每个时间区间中每个播放任务的实排次数;
具体地,先把所有按次播放的播放任务按优先级进行排序(从高到低),计算出每个播放任务在每个时间段的最大允许播放次数,若当前待排期的播放次数小于最大允许播放次数,则调整播放次数为最大允许播放次数。其中,在当前时间段当前播放任务的最大允许播放次数也为在当前时间段当前播放任务的实排次数,在当前时间段当前播放任务的最大允许播放次数=((当前时间的结束时间-当前时间段的开始时间)-被高优先级任务占用的时间)/当前播放任务的播放时长。
步骤S302,根据所述每个时间区间中每个播放任务的实排次数,将所述第一时间区间任务列表中有限播次数的播放任务转换成第一连续播放任务;
需要说明的是,先对按次播放任务给出每次播放的具体时间,这样,例如如果任务(任务时长为10秒)的播放时间为1:00~2:00播放6次,则每一次播放的具体时间为:1:00:00~1:00:10,1:10:00~1:10:10,1:20:00~1:20:10,1:30:00~1:30:10,1:40:00~1:40:10, 1:50:00~1:50:10。按优先级从高到低对具体播放时间进行调整,防止时间冲突。把任务的每一次的播放时间与比它优先级高的任务的具体播放时间进行比较,若出现时间冲突则把此任务的此次播放时间进行调整,开始时间调整为与之冲突的高优先级任务的播放时间的结束时间。再次比较,一直到此次任务的此次播放时间与高优先级的任务都不冲突结束。
步骤S303,将所述第二中间任务列表中的播放任务转换成第二连续播放任务,并将所述第二连续播放任务分配到所述目标区间任务列表中。
需要说明的是,第二中间任务列表中的播放任务没有限播次数,根据单播时长和播放时间区间转换成第二连续播放任务,即在每个时间区间中设置多个开始时间和结束时间,并将所述第二连续播放任务分配到所述目标区间任务列表中。
步骤S304,根据所述每个播放任务的优先级,对每个时间区间中的所述第一连续播放任务和所述第二连续播放任务进行排序,生成所述播放任务的目标排期列表。
具体地,把所有播放任务的每一个播放时间段按时间排序(从早到晚),取出第一个播放时间段,如果此时间段与其它时间段都不冲突,则直接把此时间段任务放入排序后队列;若此时间段与比它优先级低的时间段冲突,则直接把此时间段任务放入排序后队列;若此时间段与比它优先级高的时间段冲突,则把此时间段的结束时间调整为高优先级时间段的开始时间,然后放入排序后队列。然后从此时间段的结束时间开始,取出开始时间最早的时间段(若有多个时间段开始时间相同,则选择优先级高的时间段),循环执行此操作。
在本实施例中,对上述排序队列进行再次排序,调整时间段,防止出现播放被打断的任务。遍历上述排序步骤中输出的所有任务时间段(已按时间从早到晚排好序);若两个任务是连续的(假设前边的为任务A,后边的为任务B),如果任务B为广告任务开始的第一个任务,则不做任何处理(防止广告任务越界)。进入下次循环。如果A任务不能播放整数次,则调整A任务的结束时间为:结束时间=开始时间+((结束时间-开始时间)/任务时长)(取整)* 任务时长。此时,如果任务B为营销任务,则任务B的开始时间随任务A前移,结束时间不变。进入下次循环。如果任务B是广告任务,任务B随任务A前移(开始时间和结束时间都前移)。此时任务B后边的任务(假设为任务C)与B连续。如果C为广告任务,则随之前移;如果C为营销任务,则C的开始时间随之前移,结束时间不变。一直到无连续任务,或连续任务为营销任务为止。进入下次循环。
综上所述,在本发明的实施例中,可以确保每个播放任务严格遵守设定的播放时间段,不会提前,也不会超出;通过计算每个播放任务的播放周期,确保每个播放任务均匀播放;如果存在较长的营销播放任务,则下一个待播放的广告内容会自动调整播放时间,确保超长营销内容也可以播放完成;播放内容完整,不会出现广告任务打断营销任务的情况;本发明通过以时间顺序安排播放内容的,不会出现时间碎片影响播放效果。
图4所示为本发明实施例提供的一种播放任务的排期系统的结构示意图,如图4所示,本发明提供一种播放任务的排期系统包括服务端和设备端,服务端的用途包括营销任务投放和广告任务投放,设备端可以为任一种具备广告和营销任务播放功能的设备,比如广告机、移动终端和投屏设备等,本实施例以投屏设备为例,每个投屏设备上都运行有播放任务的排期模块,所述排期模块按照上述播放任务的排期方法进行播放任务的排期;在本发明中,服务端将播放任务投放到每个投屏设备的排期模块中,使投屏设备按照排期模块计算的排期结果将播放任务进行播放,通常播放任务在开始播放的前一天投放到设备端,一个投屏设备可以接收多个广告任务和多个营销任务。
在实际应用中,所述排期模块可以运行在设备端也可以运行在服务端,本实施例将排期模块设置在设备端,来处理来自服务端发送的广告任务和营销任务,并对这些任务进行排期,这样可以有效降低服务端的运行压力,把计算压力分摊到每一个投屏设备上,提高了排期系统的运行效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可实施包括如上述各方法的实施例的流程步骤。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。