本发明涉及数据处理领域,尤其涉及一种数据调度方法、装置及电子设备。
背景技术:
在数据资源调度时,通过会预先将需要调度的数据写入到datahub(一种流式数据处理的技术或者平台)的项目(project)的主题(topic)中,当执行到某个调度任务后,再从datahub调取相对应的数据。假设某个调度任务包括圈人任务和推送任务,圈人任务表示圈选信息推送的对象,在圈人任务执行后将圈选的对象的信息存储到datahub的项目一个主题中,例如一个圈人任务可以对应一个主题,每个圈人任务执行完成后等待执行推送任务,当执行推送任务时,从datahub中调取圈选对象的信息,并向圈选的对象进行数据推送。
但是由于datahub的一个项目中可以存储的主题的数量是有限制的,当一个项目中包含的主题的数量超过了最大限制时,若再接收到新的调度任务后,则会删除掉最先存储的调度任务,但是该最先存储的调度任务可能还未执行推送任务,当执行到该推送任务时,无法获取到调度资源,则推送任务执行失败,由此,当前datahub的调度机制会导致大量调度任务执行失败。
技术实现要素:
有鉴于此,本发明实施例公开的一种数据调度方法、装置及电子设备,解决了现有技术中,在资源达到上限的情况下,删除掉未执行推送请求的任务从而导致任务执行失败的问题,提高了任务执行成功的概率。
本发明实施例公开了一种数据调度方法,包括:
当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中;
当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取第二目标任务;所述第二目标任务为所述第一任务集合中满足预设条件的任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
当所述第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
可选的,所述当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中,包括:
当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高;
将所述第一目标任务存储在所述第一任务集合中。
可选的,所述预设的调取条件为所述第一任务集合中优先级最高的任务。
可选的,数据调度方法还包括:
所述第二目标任务处于圈人完成状态时,触发所述第二目标任务的推送请求,并执行所述第二目标任务的推送请求;当所述第二目标任务的推送请求执行完成后,从所述第二任务集合中删除所述第二目标任务。
可选的,所述执行所述第三目标任务的推送请求,包括:
检测所述第三目标任务是否满足预设的推送条件;所述预设的推送条件至少包括:所述第三目标任务处于圈人完成状态;
若所述第三目标任务符合所述预设的推送条件,则从所述第二任务集合中调取所述第二目标任务并执行所述第二目标任务的推送请求。
可选的,数据调度方法还包括:
当所述第二任务集合中存在处于圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中;
基于所述第三任务集合中包含的任务的数量,确定并发调度的任务的数量。
可选的,所述预设的调取条件为第一任务集合中的周期任务。
本发明实施例公开了一种数据调度装置,包括:
预存储单元,用于当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中;
调取单元,用于当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取第二目标任务;所述第二目标任务为所述第一任务集合中满足预设条件的任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
状态设置单元,用于执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
推送请求执行单元,用于当第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
可选的,所述预存储单元,包括:
优先级设置子单元,用于当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高;
预存储子单元,用于将所述第一目标任务存储在所述第一任务集合中。
本发明实施例公开了一种电子设备,所述电子设备包括:
存储器和处理器;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序时,至少执行前述的数据调度方法。
本实施例中,调度系统维护了两个任务集合,其中,第一任务集合中存储有调度系统接收到的任务,第二任务集合从第一任务集合中调取任务,并且需要在第二任务集合中包含的任务的数量小于预设的阈值的情况下,才可以从第一任务集合中调取任务,并在将第二目标任务从第一任务集合中调取到第二任务集合中后,执行该第二目标任务的圈人请求,将该第二目标任务的状态设置为正在圈人状态,当第二目标任务的圈人请求执行完成后,将该第二目标任务的状态修改为圈人完成状态,并在第二任务集合中存在处于圈人完成状态的第三目标任务时,触发第三目标任务的推送请求,并执行该第三目标任务的推送请求。由此,保证了第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值,并且只有调取到第二任务集合中的任务才执行圈人请求,那么才会在datahub的项目的主题中存储数据,在第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值的情况下,datahub的项目中存储的主题的数量也不会超过最大上限值,由此,保障了没有执行推送请求的任务不会被删除掉,从而大大降低了任务执行失败的数量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例提供的一种数据调度方法的流程示意图;
图2示出了本发明实施例提供的一种数据调度方法的又一流程示意图;
图3示出了本发明实施例提供的一种数据调度方法的另一流程示意图;
图4示出了本发明实施例提供的一种数据调度装置的结构示意图;
图5示出了本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,示出了本发明实施例提供的一种数据调度方法的流程示意图,在本实施例中,该方法包括:
s101:当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中;
本实施例中,第一任务集合用于存储接收到的任务,其中,接收到的任务表示还未执行圈人请求的任务,即处于等待执行圈人请求状态的任务。
s102:当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取第二目标任务;所述第二目标任务为所述第一任务集合中满足预设条件的任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
本实施例中,调度系统维护有两个任务集合,分别为第一任务集合和第二任务集合,其中,当调度系统接收到任务时,将任务存储到第一任务集合中,也就是说,第一任务集合中包含有调度系统接收到的任务,或者可以理解为,第一任务集合中存储有处于等待状态的任务,该等待状态可以表示为等待执行圈人请求的状态;第二任务集合中存储有执行圈人请求的任务和已执行完圈人请求等待执行推送请求的任务。
本实施例中,第二任务集合中需要遵循如下的规则,即第二任务集合中存储的任务的数量小于预设的阈值,其中,预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值。
举例说明:假设datahub的项目中能够存储的主题的数量的最大上限值为100,那么第二任务集合最多可以存储的任务的数量小于或者等于100。
通过上述介绍可知,第二任务集合中存储的任务的数量小于预设的阈值,那么只有当第二任务集合中存储的任务的数量小于或者等于预设的阈值的情况下,才可以执行新的任务的圈人请求;也可以理解为,只有当第二任务集合中存储的任务的数量小于或者等于预设的阈值,那么才可以从第一任务集合中调取处于等待状态的任务。
也就是说,当第二任务集合中包含的任务的数量达到预设的阈值时,则不执行s102,即不从第一任务集合中调取任何任务。
本实施例中,从第一任务集合中调取的满足预设条件的任务可以包括多种情况,本实施例中不进行限定,优选的,可以包括如下的几种情况:
情况一:预设条件为周期任务,即从第一任务集合中调取到第二任务集合中的任务为周期任务。
情况二:预设条件为优先级最高的任务,即从第一任务集合中调取第二目标任务时,第二目标任务为第一任务集合中优先级最高的任务。
其中,为了满足情况二,当调度系统接收到任务的圈人请求后,会设置该任务的优先级,例如可以根据接收到该任务圈人请求的时间设置该任务的优先级,具体的,会在下文中进行详细的介绍,本实施例中不再赘述。
s103:执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
本实施例中,将第二目标任务从第一任务集合调取到第二任务集合后,表示可以执行第二目标任务的圈人请求。并且,为了方便检测处于第二任务集合中的每个任务的状态,为每个任务设置了状态标签,第一任务集合中的某个任务发生状态变化后,修改该任务的状态标签。
其中,当第二任务集合中的任务正在执行圈人请求时,可以将该任务的状态标签设置为正在圈人状态,当该任务的圈人请求执行完成后,则将该任务的状态修改为圈人完成状态。
本实施例中,当任务的圈人请求执行完成后,将该任务的数据写入datahub的project的topic中,若该任务为一个新的任务,那么需要在project中创建一个topic。
s104:当第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
本实施例中,为了提高任务的执行效率,也为了使得datahub的project的topic的数据写入和数据使用可以达到同步,那么在第二任务集合中的任务执行完圈人请求后,触发该第三目标任务的推送请求,并立即执行该推送请求。
本实施例中,调度系统维护了两个任务集合,其中,第一任务集合中存储有调度系统接收到的任务,第二任务集合从第一任务集合中调取任务,并且需要在第二任务集合中包含的任务的数量小于预设的阈值的情况下,才可以从第一任务集合中调取任务,并在将第二目标任务从第一任务集合中调取到第二任务集合中后,执行该第二目标任务的圈人请求,将该第二目标任务的状态设置为正在圈人状态,当第二目标任务的圈人请求执行完成后,将该第二目标任务的状态修改为圈人完成状态,并在第二任务集合中存在处于圈人完成状态的第三目标任务时,触发第三目标任务的推送请求,并执行该第三目标任务的推送请求。由此,保证了第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值,并且只有调取到第二任务集合中的任务才执行圈人请求,那么才会在datahub的项目的主题中存储数据,在第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值的情况下,datahub的项目中存储的主题的数量也不会超过最大上限值,由此,保障了没有执行推送请求的任务不会被删除掉,从而大大降低了任务执行失败的数量。
进一步的,当第三目标任务的推送请求执行完成后,从所述第二任务集合中删除所述第三目标任务。
并且,当第三目标任务的推送请求执行完成后,删除datahub的项目中存储的相应的主题。
本实施例中,为了便于技术人员管理,也为了便于管理并发任务的数量,本实施例中,还设置了第三任务集合,并将第二任务集合中处于圈人完成状态的第三目标任务推送到第三任务集合中,具体的,还包括:
当第二任务集合中存在处于圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中;
基于所述第三任务集合中包含的任务的数量,确定并发调度的任务的数量。
进一步的,在执行任务的推送请求时,为了提高任务执行成功的概率,本实施例中,在执行任务推送请求时,检测任务是否满足预设的推送条件,并在满足预设的推送条件的情况下,执行该任务的推送请求,具体的,还包括:
当执行所述第三目标任务的推送请求时,检测所述第三目标任务是否满足预设的推送条件;所述预设的推送条件至少包括:所述第三目标任务处于圈人完成状态;
若第三目标任务符合预设的推送条件,则从所述第二任务集合中调取所述第二目标任务并执行所述第二目标任务的推送请求。
在一种实施方式中,在执行第二目标任务的圈人请求时,由于系统故障或者其它原因可能会导致圈人请求无法执行成功,为了避免第二任务集合中存在脏数据影响推送请求的执行,在检测到第二目标任务的圈人请求未执行成功的情况下,删除圈人请求执行失败的第二目标任务,具体的,数据调度方法还包括:
所述第二目标任务处于圈人完成状态时,触发所述第二目标任务的推送请求,并执行所述第二目标任务的推送请求;当所述第二目标任务的推送请求执行完成后,从所述第二任务集合中删除所述第二目标任务。
在另外一种实施方式中,在执行第三目标任务的推送请求时,由于系统异常,或者其它原因,例如系统宕机,导致第三目标任务的推送请求未执行完成,那么需要重新执行第三目标任务的推送请求。
参考图2,示出了本发明实施例提供的一种数据调度方法的又一流程示意图,在本实施例中,该方法包括:
s201:当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;
其中,调度系统接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高。
s202:将所述第一目标任务存储在所述第一任务集合中;
本实施例中,调度系统将接收到的任务先存储在第一任务集合中,等待调度到第二任务集合中执行圈人请求,但是,当第一任务集合中包含至少两个处于等待状态的任务时,从第一任务集合中向第二任务集合中调度任务时,需要从第一任务集合中选取第二目标任务,并调取到第一任务集合中。为了能够保证早接收到的任务能够尽早地处理,避免任务的积压,本实施例中,预先设置了第一任务集合中各个第一目标任务的优先级,优选的,可以按照接收到第一目标任务的圈人请求的时间作为设置优先级的规则,即接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高。
举例说明:任务a的圈人请求接收到的时间为10am,任务b的圈人请求接收到的时间为11am,任务c的圈人请求接收到的时间为12pm,那么任务a的优先级最高、其次为任务b,再次为任务c。
本实施例中,当第一任务集合中的任务为空的情况下,首次接收到第一目标任务的圈人请求时,则该第一目标任务的优先级最高,此后再接收到的任务的优先级的级别逐渐递减。
s203:当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取优先级最高的第二目标任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
本实施例中,第一任务集合中包含有至少一个处于等待状态的任务,每个任务基于接收到的圈人请求的时间设置了优先级,根据优先级别,从第一任务集合中调取任务,优选的,从第一任务集合中调取优先级最高的任务。
s204:执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
本实施例中,s204与上述s103的步骤一致,本实施例中不再赘述。
s205:当第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
本实施例中,s205与上述s104的步骤一致,本实施例中不再赘述。
本实施例中,对第一任务集合中存储的任务通过优先级的方式进行管理,按照接收到任务的圈人请求的时候,确定接收到的任务的优先级,当从第一任务集合中向第二任务集合中调取任务时,按照第一任务集合中任务的优先级调取,即第一任务集合中,优先级最高的任务。由此,保证了能够实现对任务的早接收早处理,避免由于任务长时间未处理导致任务失败的问题。
参考图3,示出了本发明实施例提供的一种数据调度方法的另一流程示意图,在本实施例中,该方法包括:
s301:当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;
s301与上述s201一致,本实施例中不再赘述,如图3所示,当调度系统接收到第一目标任务后,例如由sync(执行数据调度过程中的一个程序)设置第一目标任务的优先级,并将第一目标任务存储到第一任务集合中。举例说明:如图3所示,第一任务集合中存储的task1、task2、task3和task5分别是在不同时间接收到的第一目标任务,其中,task1、task2、task3处于running的阶段,表示task1、task2、task3已经调度到第二任务集合中并正在执行圈人请求。task5处于wait状态,表示task5当前还在等待调度到第二任务集合中。
s302:将所述第一目标任务存储在所述第一任务集合中;
s303:当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取优先级最高的第二目标任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
本实施例中,s303与上述s203一致,本实施例中不再赘述。例如,如图3所示,可以通过sync调度worker(一种用于实现调度的程序)从而实现从所述第一任务集合中调取优先级最高的第二目标任务的目的。
举例说明:如图3所示,当检测到第二任务集合中包含的任务的数量小于预设的预置的情况下,从第一任务集合中调取优先级最高的第二目标任务,其中,当前第二任务集合中包含的task1、task2、task3和task4均是从第一任务集合中调度到第二任务集合中的任务。其中,task1、task2、task3正在执行圈人请求,task4已经执行完圈人请求。s304:执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;s305:当第二任务集合中存在处于圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
举例说明:如图3所示,在第二任务集合中,task4表示已经执行完圈人请求,则可以将已执行完圈人请求的task4由圈人状态修改为已圈人完成的状态,并将task4推送到第三任务集合中。
为了便于技术人员管理,也为了便于管理并发任务的数量,本实施例中,还设置了第三任务集合,并将第二任务集合中处于圈人完成状态的第三目标任务推送到第三任务集合中。例如,如图3所示,可以由push命令(一种用于执行将第二任务集合中的任务推送到第三任务集合的命令)在当第二任务集合中存在处于圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中。
s306:当第三目标任务的推送请求执行完成后,从所述第二任务集合中删除所述第三目标任务。
举例说明:当第三目标任务的推送请求执行完成后,从所述第二任务集合中删除所述第三目标任务。
本实施例中,调度系统维护了两个任务集合,其中,第一任务集合中存储有调度系统接收到的任务,第二任务集合从第一任务集合中调取任务,并且需要在第二任务集合中包含的任务的数量小于预设的阈值的情况下,才可以从第一任务集合中调取任务,并在将第二目标任务从第一任务集合中调取到第二任务集合中后,执行该第二目标任务的圈人请求,将该第二目标任务的状态设置为正在圈人状态,当第二目标任务的圈人请求执行完成后,将该第二目标任务的状态修改为圈人完成状态,并在第二任务集合中存在处于圈人完成状态的第三目标任务时,触发第三目标任务的推送请求,并执行该第三目标任务的推送请求。由此,保证了第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值,并且只有调取到第二任务集合中的任务才执行圈人请求,那么才会在datahub的项目的主题中存储数据,在第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值的情况下,datahub的项目中存储的主题的数量也不会超过最大上限值,由此,保障了没有执行推送请求的任务不会被删除掉,从而大大降低了任务执行失败的数量。
参考图4,示出了本发明实施例提供的一种数据调度装置的结构示意图,在本实施例中,该装置包括:
预存储单元401,用于当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中;
调取单元402,用于当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取第二目标任务;所述第二目标任务为所述第一任务集合中满足预设条件的任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
状态设置单元403,用于执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
推送请求执行单元404,用于当第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
可选的,所述预存储单元,包括:
优先级设置子单元,用于当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;其中,调度系统接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高;
预存储子单元,用于将所述第一目标任务存储在所述第一任务集合中。
可选的,所述预设的调取条件为所述第一任务集合中优先级最高的任务。
可选的,数据调度装置还包括:
删除单元,用于当第二目标任务的推送请求执行完成后,从第二任务集合中删除所述第二目标任务。
可选的,所述推送请求执行单元,包括:
检测子单元,用于检测所述第三目标任务是否满足预设的推送条件;所述预设的推送条件至少包括:所述第三目标任务处于圈人完成状态;
推送请求执行子单元,用于若第三目标任务符合预设的推送条件,则从所述第二任务集合中调取所述第二目标任务并执行所述第二目标任务的推送请求。
可选的,数据调度装置还包括:
任务推送单元,用于当第二任务集合中存在圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中;
确定单元,用于基于所述第三任务集合中包含的任务的数量,确定并发调度的任务的数量。
可选的,所述预设的调取条件为第一任务集合中的周期任务。
通过本实施例的装置,保证了第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值,并且只有调取到第二任务集合中的任务才执行圈人请求,那么才会在datahub的项目的主题中存储数据,在第二任务集合中的任务的数量不超过datahub的项目中能够存储的主题的最大上限值的情况下,datahub的项目中存储的主题的数量也不会超过最大上限值,由此,保障了没有执行推送请求的任务不会被删除掉,从而大大降低了任务执行失败的数量。
参考图5,示出了本发明实施例提供的一种电子设备的结构示意图,在本实施例中,该电子设备包括:
存储器501和处理器502;
所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序时,至少执行下述所述的数据调度方法:
当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中;
当检测到第二任务集合中包含的任务的数量小于预设的阈值的情况下,从所述第一任务集合中调取第二目标任务;所述第二目标任务为所述第一任务集合中满足预设条件的任务;所述预设的阈值小于或者等于datahub的项目中能够存储的主题的数量的最大上限值;
执行所述第二目标任务的圈人请求,将所述第二目标任务的状态设置为正在圈人状态,并在所述第二目标任务的圈人请求执行完成后,将所述第二目标任务从正在圈人状态修改为圈人完成状态;
当第二任务集合中存在处于圈人完成状态的第三目标任务时,触发所述第三目标任务的推送请求,并执行所述第三目标任务的推送请求。
可选的,所述当接收到第一目标任务的圈人请求后,将所述第一目标任务存储在第一任务集合中,包括:
当接收到第一目标任务的圈人请求后,根据接收到所述第一目标任务的圈人请求的时间,设置所述第一目标任务的优先级;其中,调度系统接收到第一目标任务的圈人请求的时间越早,则所述第一目标任务的优先级越高;
将所述第一目标任务存储在所述第一任务集合中。
可选的,所述预设的调取条件为所述第一任务集合中优先级最高的任务。
可选的,数据调度方法还包括:
当第二目标任务的推送请求执行完成后,从第二任务集合中删除所述第二目标任务。
可选的,所述执行所述第三目标任务的推送请求,包括:
检测所述第三目标任务是否满足预设的推送条件;所述预设的推送条件至少包括:所述第三目标任务处于圈人完成状态;
若第三目标任务符合预设的推送条件,则从所述第二任务集合中调取所述第二目标任务并执行所述第二目标任务的推送请求。
可选的,数据调度方法还包括:
当第二任务集合中存在处于圈人完成状态的第三目标任务的情况下,将所述第三目标任务推送到第三任务集合中;
基于所述第三任务集合中包含的任务的数量,确定并发调度的任务的数量。
可选的,所述预设的调取条件为第一任务集合中的周期任务。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。