发明内容
本申请实施例提供一种任务执行方法及相关装置,能够分批次向待升级设备集合中的设备发送OTA升级任务,以及根据前批次的任务执行结果来向后续设备发送OTA升级任务,提升了OTA升级任务执行时的可靠性。
本申请实施例的第一方面提供了一种任务执行方法,所述方法包括:
确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备;
向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务;
获取所述第一设备集合中的设备的OTA升级任务的执行结果;
根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,包括:
根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,确定所述第一设备集合中升级成功的设备的第一数量;
若所述第一数量高于或等于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,若所述第一数量小于预设数量,则禁止向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,以及确定告警信息;
展示所述告警信息。
在一个可能的实现方式中,若所述第一数量小于预设数量,则获取第二设备集合中的设备的OTA升级任务的执行进度信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的OTA升级任务的执行进度信息,确定在预设时间间隔后所述第二设备集合中的设备的OTA升级任务执行成功的第二数量;
若所述第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述方法还包括:
获取第二设备集合中的设备的状态信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的状态信息,确定所述第二设备集合中的设备的异常信息;
展示所述第二设备集合中的设备的异常信息。
在一个可能的实现方式中,所述获取所述第一设备集合中的设备的OTA升级任务的执行结果,包括:
获取所述第一设备集合中的设备的状态信息;
根据所述第一设备集合中的设备的状态信息,确定所述第一设备集合中的设备的OTA升级任务的执行结果。
本申请实施例的第二方面提供了一种任务执行装置,所述装置包括:
确定单元,用于确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备;
第一发送单元,用于向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务;
获取单元,用于获取所述第一设备集合中的设备的OTA升级任务的执行结果;
第二发送单元,用于根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述第二发送单元用于:
根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,确定所述第一设备集合中升级成功的设备的第一数量;
若所述第一数量高于或等于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述第二发送单元用于:
若所述第一数量小于预设数量,则禁止向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,以及确定告警信息;
展示所述告警信息。
在一个可能的实现方式中,所述第二发送单元用于:
若所述第一数量小于预设数量,则获取第二设备集合中的设备的OTA升级任务的执行进度信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的OTA升级任务的执行进度信息,确定在预设时间间隔后所述第二设备集合中的设备的OTA升级任务执行成功的第二数量;
若所述第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述装置还用于:
获取第二设备集合中的设备的状态信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的状态信息,确定所述第二设备集合中的设备的异常信息;
展示所述第二设备集合中的设备的异常信息。
在一个可能的实现方式中,所述获取单元用于:
获取所述第一设备集合中的设备的状态信息;
根据所述第一设备集合中的设备的状态信息,确定所述第一设备集合中的设备的OTA升级任务的执行结果。
本申请实施例的第三方面提供一种服务器,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面中的步骤指令。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,至少具有如下有益效果:
确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备,向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务,获取所述第一设备集合中的设备的OTA升级任务的执行结果,根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,因此,能够分批次向待升级设备集合中的设备发送OTA升级任务,以及根据前批次的任务执行结果来向后续设备发送OTA升级任务,提升了OTA升级任务执行时的可靠性。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
为了更好的理解本申请实施例提供的任务执行方法,下面首先对应用任务执行方法的任务执行***进行简要介绍。如图1所示,任务执行***包括服务器和待升级设备,存在有多个待升级设备,需要对待升级设备进行升级,因此,服务器可以从待升级设备集合中确定出第一设备集合,该第一设备集合为待升级设备集合中的部分或全部设备,并将OTA升级任务发送给第一设备集合中的设备,第一设备集合中的设备接收OTA升级任务,并执行该OTA升级任务,若成功执行OTA升级任务,则设备可以重新与服务器连接,从而服务器可以获取到设备的执行结果(执行成功或执行失败),服务器根据该执行结果,向后续的待升级设备发送OTA升级任务,因此,能够分批次向待升级设备集合中的设备发送OTA升级任务,以及根据前批次的任务执行结果来向后续设备发送OTA升级任务,提升了OTA升级任务执行时的可靠性。
请参阅图2,图2为本申请实施例提供了一种任务执行方法的流程示意图。如图2所示,应用于服务器,任务执行方法包括:
201、确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备。
在确定待升级设备集合之前,需要获取到OTA升级任务,OTA升级任务可以对应有不同类型的设备,从而可以确定出待升级设备集合。
获取OTA升级任务的方法可以是,接收上传的固件文件,根据该固件文件创建OTA升级任务。具体例如,可以是管理员等上传固件文件到服务器,服务器根据该固件文件创建OTA升级任务。
其中,第一设备集合可以是从待升级设备集合中随机选取的待升级设备,以构成的第一设备集合。随机选取时,可以是按照数量进行随机选取,例如,按照待升级设备集合中元素的百分比进行选取,具体例如,可以是选取1%的元素,确定为第一设备集合中的元素等。此处仅为距离说明,不作具体限定。
202、向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务。
可以在确定出第一设备集合后,立即向第一设备集合中的设备发送OTA升级任务,当然也可以是在确定出第一设备集合后,延迟预设时间间隔后,向第一设备集合中的设备发送OTA升级任务等,也可以是在预设条件满足后,向第一设备集合中的设备发送OTA升级任务,其中,预设条件通过经验值或历史数据设定。
203、获取所述第一设备集合中的设备的OTA升级任务的执行结果。
可以根据第一设备集合中的设备的状态信息,来确定第一设备集合中的设备的任务执行结果。
204、根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
可以根据第一设备集合中的设备中升级成功的设备的第一数量来向待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。例如,该第一数量超过预设数量时,向待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务等。
本示例中,确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备,向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务,获取所述第一设备集合中的设备的OTA升级任务的执行结果,根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,因此,能够分批次向待升级设备集合中的设备发送OTA升级任务,以及根据前批次的任务执行结果来向后续设备发送OTA升级任务,提升了OTA升级任务执行时的可靠性。
在一个可能的实现方式中,一种可能的所述根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务的方法,包括:
A1、根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,确定所述第一设备集合中升级成功的设备的第一数量;
A2、若所述第一数量高于或等于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
任务执行结果可以指示任务是否执行成功,从而可以根据执行结果确定第一设备集合中升级成功的设备的第一数量。
预设数量通过经验值或历史数据设定。向待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务的方法可以是:从待升级设备集合中除所述第一设备集合以外的设备中确定出第二设备集合,向第二设备集合中的设备发送该OTA升级任务,获取第二设备集合中的设备的OTA升级任务的执行结果,并根据该OTA升级任务的执行结果向待升级设备集合中除所述第一设备集合以外的设备中除第二设备集合中的设备外的设备发送OTA升级任务,重复执行上述步骤,直至向待升级设备集合中全部设备发送OTA升级任务,或者执行失败。执行失败可以理解为若后续的设备的执行成功的数量在持续第一某一预设数值,则确定执行失败,该某一预设数值通过经验值或历史数据设定。
本示例中,在第一设备集合中升级成功的设备的第一数量高于或等于预设数量或,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,因此,可以避免同时向所有的待升级设备发送OTA升级任务时,OTA升级任务出现极端的大多数未执行成功时的风险,提升了OTA升级任务执行时的可靠性。
在一个可能的实现方式中,若所述第一数量小于预设数量,则禁止向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,以及确定告警信息,展示所述告警信息。
其中,可以根据第一数量来确定告警信息,第一数量可以处于不同的数量区间,不同的数量区间可以对应有不同的告警信息,从而可以确定出第一数量对应的告警信息。展示告警信息时,可以是执行后台通知消息的方式展示告警信息,也可以是通过邮件的方式展示告警信息,还可以是通过短信或自动电话告警的方式展示告警信息,当然还可以有其它的展示告警信息的方法,此处不再赘述。
在一个可能的实现方式中,还可以对任务发送进行校验处理,具体如下:
B1、若所述第一数量小于预设数量,则获取第二设备集合中的设备的OTA升级任务的执行进度信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
B2、根据所述第二设备集合中的设备的OTA升级任务的执行进度信息,确定在预设时间间隔后所述第二设备集合中的设备的OTA升级任务执行成功的第二数量;
B3、若所述第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
其中,在第一数量小于预设数量时,还可以进行校验处理,具体例如可以是获取向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务的执行进度信息,执行进度信息可以理解为OTA升级任务在执行时的完成率。可以根据执行进度对OTA升级任务是否执行成功进行预测,例如,可以将执行进度高于预设执行进度的设备,确定为在预设时间间隔后能够执行成功的设备,从而可以获取到第二数量。当然还可以是根据执行进度信息和第二设备集合中的设备的当前状态来确定预设时间间隔后,OTA升级任务是否执行成功,具体例如,可以将执行进度高于预设执行进度以及当前状态为预设状态的设备,确定为在预设时间间隔后能够执行成功的设备,从而可以获取到第二数量,预设状态通过经验值或历史数据设定。
本示例中,在第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,从而可以对任务发送时进行校验处理,进一步的提升了OTA升级任务执行时的可靠性。
在一个可能的实现方式中,还可以对未升级成功的设备进行异常信息的展示,具体如下:
C1、获取第二设备集合中的设备的状态信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
C2、根据所述第二设备集合中的设备的状态信息,确定所述第二设备集合中的设备的异常信息;
C3、展示所述第二设备集合中的设备的异常信息。
其中,设备状态信息可以包括有连接状态、非连接状态,在连接状态时可以包括有任务成功执行的状态,任务非成功执行的状态等。
由于第二设备集合中的设备为任务执行失败的设备,则其状态信息可以包括有非连接状态、连接但未成功执行升级任务的状态。
从而可以根据状态信息来确定异常信息,例如,状态信息为非连接状态,则异常信息可以为固件升级异常、固件异常等。状态信息为连接但未成功执行升级任务时,则可以进一步的获取设备当前状态,根据该当前状态来确定异常信息,不同的状态可以对应有不同的异常信息,从而可以根据状态信息来确定出异常信息。
本示例中,在升级任务执行失败后,可以根据设备的状态信息确定异常信息,并展示异常信息,从而可以告知管理员等升级任务执行异常的情况,提升了后续对异常进行处理时的效率。
在一个可能的实现方式中,一种可能的获取所述第一设备集合中的设备的OTA升级任务的执行结果的方法,包括:
D1、获取所述第一设备集合中的设备的状态信息;
D2、根据所述第一设备集合中的设备的状态信息,确定所述第一设备集合中的设备的OTA升级任务的执行结果。
其中,不同的状态信息可以对应有不同的执行结果,例如,任务状态有连接状态、非连接状态,在连接状态时可以包括有任务成功执行的状态,任务非成功执行的状态等。在非连接状态时,确定执行结果为执行失败,在非连接状态时,也可以根据状态信息确定是否执行成功,不同的状态对应有不同的执行结果,从而可以确定出OTA升级任务的执行结果。
在一个具体的实现方式中,本申请实施例还提供了一种具体的任务执行方法,具体如下:
将OTA升级任务下发规则调整为叠加OTA升级策略的规则,叠加OTA升级策略包括有四大策略,该四大策略包括有:拆分策略、执行策略、依赖策略、熔断策略。通过分批次升级设备状态结果来决策后续升级批次的设备是否继续执行OTA升级,同时,***可根据需要设定触发器条件来提供报警机制,及时让业务相关方感知问题的存在并对问题进行人工干预。其中,拆分策略、执行策略、依赖策略、熔断策略具体如下:
拆分策略,对应将OTA升级任务拆分为多个升级批次,例如倒金字塔拆分模型,第一个批次用户大约占1%的用户设备样本,第二批次占2%的用户设备样本,第三批次占4%的用户设备样本,第四批次占8%的用户设备样本,依次推导样本扩大模型直至覆盖全量用户样本范围100%;其中批次数与每批次数量是完全可以自定义的,一般情况下会预设一些常用拆分模型,使之快速构建OTA升级任务。这里举例是用百分比的用户群体,前面批次使用固定数量样本,后面批次也可以使用百分比拆分批次。
执行策略,OTA升级任务已经拆分为多批次模型;执行策略中首次执行任务的时间,可以立即执行、延迟执行或者特定条件下开始执行;批次执行完成之后的间隔时间设置,或者批次之间是否需要叠加依赖策略等。
依赖策略,正常情况下OTA升级成功之后,设备会自动恢复MQTT连接IoT服务器,设备服务器是可以感知到设备升级成功了,并且已经重新入网,并且设备心跳等指标数据检测正常。这时候,回馈数据可以作用于OTA升级任务的批次的依赖策略条件,当前一个批次OTA升级任务升级成功,且状态恢复正常的情况下,批次成功率到达一定指标阈值的时候,***程序自动投放下一次批次的OTA升级任务。未达到指标阈值则暂停继续投放OTA升级任务,依赖策略还可以叠加熔断策略,用于出现异常判断执行的动作。
熔断策略,当依赖策略卡住无法执行下一批次的时候,熔断策略是保证在特定条件下能触发熔断操作。例如批次执行过程中,依赖策略始终达不到触发执行下一批次的条件,OTA升级任务一直会处于停滞状态;例如第一批次的100台设备,达不到30%的升级成功恢复上线的指标阈值,***无法投放第二次批次的OTA升级任务。熔断策略就是设定当超过多长时间之后进行任务熔断操作,或者进行通知告警操作。例如针对在线用户批次之间超过30分钟未达到10%执行后台***消息通知,超过1小时未达到10%成功率,执行邮件告警,超过3小时未达到10%进行短信或者自动电话告警;当超过24小时未达到10%的设备升级成功自动熔断,OTA升级任务自动终止。
多批次任务执行当中,OTA未达到满足执行下一批次的30%的设备重新上线率的指标要求,并在熔断策略之后人工介入或者程序自动终止。对于正常的设备,升级成功之后各项数据指标能快速恢复,只有是异常状态下,才会触发熔断。而这个异常情况已经覆盖了设备OTA升级过程中的人为因素的风险覆盖。当然,由于需要通过部分设备升级结果反向探测OTA升级过程是否正常,在极端情况下依然需要“牺牲”掉首批设备,虽然是小批量设备,对品牌方来说依然会存在用户损失的风险存在,因此,本案例旨在降低OTA升级出现***性的风险,提升OTA升级任务执行的可靠性。
OTA升级策略允许多种策略存在,策略之间可以进行叠加操作,对于叠加的策略可共同作用于本次OTA升级任务,例如任务执行策略与执行熔断策略是可以叠加共同作用于本次OTA升级任务的。
每条策略中也允许存在互斥的策略选项存在,一般是同类型的策略存在多种实现选项,在实际使用当中同一种策略只会叠加一种,策略的不同选项之间就是互斥的状态。例如:执行时间策略中,有多种条件选择是互斥的,立即执行与延迟执行必然是二选一,不可能同时存在;
策略是可以横向扩充的,并不是一种或者几种固定的策略模式,是可以根据实际业务需求的定制化,对业务进行延伸扩充;本案例将会重点根据保护要点降低升级风险阐述其关键策略部分,OTA升级策略模型实际作用不仅仅只有降低OTA升级任务的风险,其他方面例如升级过程可观测、进度可感知、记录可查询,数据可分析等方面都存在功能拓展的空间。
设备的OTA升级任务时间都应该规避用户设备的使用高峰期,例如在用户睡觉的时间选择升级是比较稳妥的时间。但是,不同的国家的用户之间,设备使用高峰时段,每个地区和每个国家是不同的,同一个地区的用户作息时间也同样存在差异。因此,可以建立设备的基本数据画像来规避,规避设备在使用过程中执行OTA升级任务,因此,可以根据基本数据画像来确定OTA升级任务的起始发送时间等。
请参阅图3,图3为本申请实施例提供了另一种任务执行方法的流程示意图。如图3所示,应用于服务器,任务执行方法包括:
301、确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备;
302、向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务;
303、获取所述第一设备集合中的设备的OTA升级任务的执行结果;
304、根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,确定所述第一设备集合中升级成功的设备的第一数量;
305、若所述第一数量高于或等于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务;
306、若所述第一数量小于预设数量,则获取第二设备集合中的设备的OTA升级任务的执行进度信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
307、根据所述第二设备集合中的设备的OTA升级任务的执行进度信息,确定在预设时间间隔后所述第二设备集合中的设备的OTA升级任务执行成功的第二数量;
308、若所述第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
本示例中,在第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,从而可以对任务发送时进行校验处理,进一步的提升了OTA升级任务执行时的可靠性。
与上述实施例一致的,请参阅图4,图4为本申请实施例提供的一种服务器的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,上述程序包括用于执行以下步骤的指令;
确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备;
向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务;
获取所述第一设备集合中的设备的OTA升级任务的执行结果;
根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图5,图5为本申请实施例提供了一种任务执行装置的结构示意图。如图5所示,所述装置包括:
确定单元501,用于确定第一设备集合,所述第一设备集合中的设备为待升级设备集合中的部分或全部设备;
第一发送单元502,用于向所述第一设备集合中的设备发送OTA升级任务,以指示所述第一设备集合中的设备执行所述OTA升级任务;
获取单元503,用于获取所述第一设备集合中的设备的OTA升级任务的执行结果;
第二发送单元504,用于根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述第二发送单元504用于:
根据所述第一设备集合中的设备发送的OTA升级任务的执行结果,确定所述第一设备集合中升级成功的设备的第一数量;
若所述第一数量高于或等于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述第二发送单元504用于:
若所述第一数量小于预设数量,则禁止向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务,以及确定告警信息;
展示所述告警信息。
在一个可能的实现方式中,所述第二发送单元504用于:
若所述第一数量小于预设数量,则获取第二设备集合中的设备的OTA升级任务的执行进度信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的OTA升级任务的执行进度信息,确定在预设时间间隔后所述第二设备集合中的设备的OTA升级任务执行成功的第二数量;
若所述第二数量与所述第一数量之和大于预设数量,则向所述待升级设备集合中除所述第一设备集合以外的设备发送所述OTA升级任务。
在一个可能的实现方式中,所述装置还用于:
获取第二设备集合中的设备的状态信息,所述第二设备集合中的设备为所述第一执行集合中执行结果为未升级成功的设备;
根据所述第二设备集合中的设备的状态信息,确定所述第二设备集合中的设备的异常信息;
展示所述第二设备集合中的设备的异常信息。
在一个可能的实现方式中,所述获取单元503用于:
获取所述第一设备集合中的设备的状态信息;
根据所述第一设备集合中的设备的状态信息,确定所述第一设备集合中的设备的OTA升级任务的执行结果。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种任务执行方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种任务执行方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。