发明内容
为克服相关技术中存在的问题,本发明提供一种任务处理方法及装置。
根据本发明实施例的第一方面,提供一种任务处理方法,所述方法包括:
检测是否通过预设代理模块接收到目标任务的配置变更请求,所述配置变更请求中携带有目标配置信息;所述目标配置信息至少包括对所述目标任务对应的数据进行运算的目标运算方式或对所述目标任务对应的数据进行存储的目标存储地址;
当接收到所述配置变更请求时,判断是否按照所述目标任务的当前配置信息执行过所述目标任务;
当未按照所述目标任务的当前配置信息执行过所述目标任务时,将所述目标任务的当前配置信息更改为所述目标配置信息。
其中,所述将所述目标任务的当前配置信息更改为所述目标配置信息之后,还包括:
根据预设任务执行顺序判断下一任务是否为所述目标任务;
当下一任务为所述目标任务时,利用更改后的所述目标配置信息执行所述目标任务。
进一步地,所述方法还包括:
当未按照所述目标任务的当前配置信息执行过所述目标任务时,通过所述预设代理模块通知未执行过所述目标任务;
当按照所述目标任务的当前配置信息执行过所述目标任务时,通过所述预设代理模块通知已执行过所述目标任务。
其中,所述判断是否按照所述目标任务的当前配置信息执行过所述目标任务,包括:
获取本地存储的任务标识与执行状态之间的第一对应关系;
在所述第一对应关系中查找与所述目标任务的任务标识相对应的执行状态;
当所述执行状态为已执行状态时,确定按照所述目标任务的当前配置信息执行过所述目标任务;
当所述执行状态为未执行状态时,确定未按照所述目标任务的当前配置信息执行过所述目标任务。
进一步地,所述方法还包括:
当以所述目标配置信息执行完所述目标任务之后,在所述第一对应关系中,将与所述目标任务的任务标识相对应的执行状态变更为已执行状态。
其中,所述将所述目标任务的当前配置信息更改为所述目标配置信息,包括:
获取本地存储的任务标识与配置信息之间的第二对应关系;
在所述第二对应关系中查找与所述目标任务的任务标识相对应的配置信息;
将所述配置信息替换为所述目标配置信息,以实现将所述目标任务的当前配置信息更改为所述目标配置信息。
根据本发明实施例的第二方面,提供一种任务处理装置,所述装置包括:
检测单元,用于检测是否通过预设代理模块接收到目标任务的配置变更请求,所述配置变更请求中携带有目标配置信息;所述目标配置信息至少包括对所述目标任务对应的数据进行运算的目标运算方式或对所述目标任务对应的数据进行存储的目标存储地址;
第一判断单元,用于当接收到所述配置变更请求时,判断是否按照所述目标任务的当前配置信息执行过所述目标任务;
更改单元,用于当未按照所述目标任务的当前配置信息执行过所述目标任务时,将所述目标任务的当前配置信息更改为所述目标配置信息。
进一步地,所述装置还包括:
第二判断单元,用于根据预设任务执行顺序判断下一任务是否为所述目标任务;
执行单元,用于当下一任务为所述目标任务时,利用更改后的所述目标配置信息执行所述目标任务。
进一步地,所述装置还包括:
第一通知单元,用于当未执行过所述目标任务时,通过所述预设代理模块通知未执行过所述目标任务;
第二通知单元,用于当已执行过所述目标任务时,通过所述预设代理模块通知已执行过所述目标任务。
其中,所述第一判断单元包括:
第一获取子单元,用于获取本地存储的任务标识与执行状态之间的第一对应关系;
第一查找子单元,用于在所述第一对应关系中查找与所述目标任务的任务标识相对应的执行状态;
第一确定子单元,用于当所述执行状态为已执行状态时,确定已执行过所述目标任务;
第二确定子单元,用于当所述执行状态为未执行状态时,确定未执行过所述目标任务。
进一步地,所述装置还包括:
变更单元,用于当以所述目标配置信息执行完所述目标任务之后,在所述第一对应关系中,将与所述目标任务的任务标识相对应的执行状态变更为已执行状态。
其中,所述更改单元包括:
第二获取子单元,用于获取本地存储的任务标识与配置信息之间的第二对应关系;
第二查找子单元,用于在所述第二对应关系中查找与所述目标任务的任务标识相对应的配置信息;
替换子单元,用于将所述配置信息替换为所述目标配置信息,以实现将所述目标任务的当前配置信息更改为所述目标配置信息。
本发明的实施例提供的技术方案可以包括以下有益效果:在本发明中,在设备执行分布式任务中的任务的过程中,如果用户需要变更目标任务的配置信息并使得设备按照变更后的配置信息执行目标任务,用户可以通过预设代理模块提交目标任务的配置变更请求给设备,当设备通过预设代理模块接收到目标任务的配置变更请求时,无需终止执行分布式任务,只需判断是否按照目标任务的当前配置信息执行过目标任务,以及当未按照目标任务的当前配置信息执行过目标任务时,将目标任务的当前配置信息更改为目标配置信息,如此使得,当设备执行到目标任务时按照目标配置信息执行目标任务。整个过程中无需终止执行分布式任务,也无需重新执行分布式任务,进而不会导致重复执行,也就不会浪费设备中的系统资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种任务处理方法的流程图,如图1所示,该方法包括以下步骤。
在步骤S101中,检测是否通过预设代理模块接收到目标任务的配置变更请求。
配置变更请求中携带有目标配置信息;目标配置信息至少包括对目标任务对应的数据进行运算的目标运算方式或对目标任务对应的数据进行存储的目标存储地址。
当接收到配置变更请求时,在步骤S102中,判断是否按照目标任务的当前配置信息执行过目标任务。
当未按照目标任务的当前配置信息执行过目标任务时,在步骤S103中,将目标任务的当前配置信息更改为目标配置信息。
在本发明图1所示的实施例中,在设备执行分布式任务中的任务的过程中,如果用户需要变更目标任务的配置信息并使得设备按照变更后的配置信息执行目标任务,用户可以通过预设代理模块提交目标任务的配置变更请求给设备,当设备通过预设代理模块接收到目标任务的配置变更请求时,无需终止执行分布式任务,只需判断是否按照目标任务的当前配置信息执行过目标任务,以及当未按照目标任务的当前配置信息执行过目标任务时,将目标任务的当前配置信息更改为目标配置信息,如此使得,当设备执行到目标任务时按照目标配置信息执行目标任务。整个过程中无需终止执行分布式任务,也无需重新执行分布式任务,进而不会导致重复执行,也就不会浪费设备中的系统资源。
图2是根据一示例性实施例示出的一种任务处理方法的流程图,如图2所示,该方法包括以下步骤。
在步骤S201中,检测是否通过预设代理模块接收到目标任务的配置变更请求。
预设代理模块为分布式任务与用户之间的一个接口,用户通过这个接口可以在设备执行分布式任务的过程中输入配置变更请求给分布式任务。
配置变更请求中携带有目标配置信息;目标配置信息至少包括对目标任务对应的数据进行运算的目标运算方式或对目标任务对应的数据进行存储的目标存储地址等。
其中,在设备执行分布式任务的过程中,如果用户需要改变对目标任务对应的数据进行运算的运算方式,或者需要改变对目标任务对应的数据进行存储的存储地址;用户可以通过预设代理模块发送配置变更请求给设备。
当设备获取到或生成分布式任务时,分布式任务中的所有任务的配置信息就已经确定了,一般情况下,设备在执行分布式任务时,会按照已经确定的配置信息执行分布式任务中的任务。
然而,当设备执行分布式任务的过程中,用户可能会根据实时情况随时变更分布式任务中的目标任务的配置信息,并使得设备按照变更后的配置信息执行目标任务,即,变更对分布式任务中的目标任务对应的数据进行存储的存储地址,或变更对分布式任务中的目标任务对应的数据进行运算的运算方式等。目标任务为分布式任务中的一个任务。
这样,用户可以通过预设代理模块输入配置变更请求给设备;对于设备而言,当开始执行分布式任务后,实时或定期检测是否通过预设代理模块接收到目标任务的配置变更请求,当接收到配置变更请求执行步骤S202。
当接收到配置变更请求时,在步骤S202中,判断是否按照目标任务的当前配置信息执行过目标任务。
当设备获取到或生成分布式任务时,设备就会获取从分布式任务中的所有任务的任务标识,任务标识可以任务的编号等,本发明对比不加以限定。由于此时还未执行分布式任务中的任务,因此可以将分布式任务中的所有任务的执行状态均设置为未执行状态,当一个任务的执行状态为未执行状态时,则说明设备还未执行该任务;然后对于分布式任务中的任一任务,将该任务的任务标识和未执行状态作为一条记录存储在本地存储的任务标识与执行状态之间的第一对应关系中,对于分布式任务中的其他每一任务,均执行上述操作。
进一步地,当开始执行分布式任务中的一个任务时,设备在第一对应关系中查找包括该任务的任务标识的记录,然后将该记录中的执行状态由未执行状态变更为已执行状态,用以表明设备已经执行过该任务。这样,在任一时刻设备通过第一对应关系就可以获知每个任务的执行状态。
因此,本步骤具体可以通过如下流程实现,包括:
11)、获取本地存储的任务标识与执行状态之间的第一对应关系;
12)、在第一对应关系中查找与目标任务的任务标识相对应的执行状态;
13)、当执行状态为已执行状态时,确定按照目标任务的当前配置信息执行过目标任务;
14)、当执行状态为未执行状态时,确定未按照目标任务的当前配置信息执行过目标任务。
当按照目标任务的当前配置信息执行过目标任务时,在步骤S203中,通过预设代理模块通知按照目标任务的当前配置信息执行过目标任务;结束流程。
其中,在本发明实施例中,用户是通过预设代理模块将配置变更请求发送给设备的,用户与设备之间需要交互时,需要通过预设代理模块才能实现。
因此,如果需要向用户通知设备已执行过目标任务,则可以通过预设代理模块进行通知,这样用户就通过预设代理模块就能够收到设备的通知,并获知设备已执行过目标任务。
当未按照目标任务的当前配置信息执行过目标任务时,在步骤S204中,通过预设代理模块通知未按照目标任务的当前配置信息执行过目标任务;执行步骤S205。
如果需要向用户通知设备未执行过目标任务,则可以通过预设代理模块进行通知,这样用户就通过预设代理模块就能够收到设备的通知,并获知设备未执行过目标任务。
在步骤S205中,将目标任务的当前配置信息更改为目标配置信息。
其中,步骤S204和步骤S205的顺序可以互换。
当设备获取到或生成分布式任务时,设备就会获知分布式任务中的所有任务的配置信息,然后会将每个任务对应的配置信息存储在本地。例如,对于分布式任务中的任一任务,将该任务的任务标识和该任务的配置信息作为一条记录存储在本地存储的任务标识与配置信息之间的第二对应关系中,对于分布式任务中的其他每一任务,均执行上述操作。
当需要执行分布式任务中的一个任务时,根据该任务的任务标识,设备从第二对应关系中就可以获取对应的配置信息,然后再按照获取的配置信息执行该任务。
因此,本步骤具体可以通过如下流程实现,包括:
21)、获取本地存储的任务标识与配置信息之间的第二对应关系;
22)、在第二对应关系中查找与目标任务的任务标识相对应的配置信息;
23)、将配置信息替换为目标配置信息,以实现将目标任务的当前配置信息更改为目标配置信息。
这样,之后当设备要执行目标任务时,可以从第二对应关系中查找与目标任务的任务标识相对应的配置信息,其中,查找到的配置信息为目标配置信息;然后再按照目标配置信息执行目标任务。
进一步地,在将目标任务的当前配置信息更改为目标配置信息之后,设备可以通过预设代理模块向用户通知设备已经将目标任务的当前配置信息更改为目标配置信息,以使用户通过预设代理模块就可以获知设备将目标任务的当前配置信息更改为目标配置信息。
其中,一般情况下,当设备已经执行过目标任务后,就不会再次执行目标任务,因此,当设备已经执行过目标任务后,即使将目标任务的当前配置信息更改为目标配置信息,设备也不会按照目标配置信息再次执行目标任务,这样其实也就无需将目标任务的当前配置信息更改为目标配置信息。因此,当设备已经执行过目标任务后,就不再将目标任务的当前配置信息更改为目标配置信息,进一步地,设备可以通过预设代理模块向用户提示无法将目标任务的当前配置信息更改为目标配置信息。以使用户获知服务器已经执行目标任务,无法将目标任务的当前配置信息更改为目标配置信息。
在步骤S206中,根据预设任务执行顺序判断下一任务是否为目标任务;
其中,在分布式任务中的任务需要按照特定的顺序执行。
当设备获取到或生成分布式任务时,就会获取到分布式任务中的所有任务的执行顺序。设备会将执行分布式任务中的所有任务的执行顺序存储在本地,当设备执行完一个任务时,会根据执行顺序执行位于该一个任务之后的下一个任务,直至执行完分布式任务中的所有任务为止。
例如,设备可以在将分布式任务中的所有任务的任务标识按照执行顺序存储在执行顺序列表中;这样,每当设备执行完一个任务时,设备就会从执行顺序列表中获取与该任务的任务标识相邻的且位于该任务的任务标识之后的任务标识,然后执行获取的任务标识对应的任务。
因此,在本步骤中,当设备执行完当前执行的任务时,从执行顺序列表中获取与该任务的任务标识相邻的且位于该任务的任务标识之后的任务标识,判断获取的任务标识是否为目标任务的任务标识,当获取的任务标识为目标任务的任务标识时,确定下一个待执行的任务为目标任务。
当下一任务为目标任务时,在步骤S207中,利用更改后的目标配置信息执行目标任务。
进一步地,当以目标配置信息执行完目标任务之后,在第一对应关系中,将与目标任务的任务标识相对应的执行状态变更为已执行状态。
在本发明图2所示的实施例中,在设备执行分布式任务中的任务的过程中,如果用户需要变更目标任务的配置信息并使得设备按照变更后的配置信息执行目标任务,用户可以通过预设代理模块提交目标任务的配置变更请求给设备,当设备通过预设代理模块接收到目标任务的配置变更请求时,无需终止执行分布式任务,只需判断是否按照目标任务的当前配置信息执行过目标任务,以及当未按照目标任务的当前配置信息执行过目标任务时,将目标任务的当前配置信息更改为目标配置信息,如此使得,当设备执行到目标任务时按照目标配置信息执行目标任务。整个过程中无需终止执行分布式任务,也无需重新执行分布式任务,进而不会导致重复执行,也就不会浪费设备中的系统资源。
图3是根据一示例性实施例示出的一种任务处理装置的框图。参照图3,该装置包括:
检测单元11,用于检测是否通过预设代理模块接收到目标任务的配置变更请求,所述配置变更请求中携带有目标配置信息;所述目标配置信息至少包括对所述目标任务对应的数据进行运算的目标运算方式或对所述目标任务对应的数据进行存储的目标存储地址;
第一判断单元12,用于当接收到所述配置变更请求时,判断是否按照所述目标任务的当前配置信息执行过所述目标任务;
更改单元13,用于当未按照所述目标任务的当前配置信息执行过所述目标任务时,将所述目标任务的当前配置信息更改为所述目标配置信息。
在本发明图3所示的实施例中,在设备执行分布式任务中的任务的过程中,如果用户需要变更目标任务的配置信息并使得设备按照变更后的配置信息执行目标任务,用户可以通过预设代理模块提交目标任务的配置变更请求给设备,当设备通过预设代理模块接收到目标任务的配置变更请求时,无需终止执行分布式任务,只需判断是否按照目标任务的当前配置信息执行过目标任务,以及当未按照目标任务的当前配置信息执行过目标任务时,将目标任务的当前配置信息更改为目标配置信息,如此使得,当设备执行到目标任务时按照目标配置信息执行目标任务。整个过程中无需终止执行分布式任务,也无需重新执行分布式任务,进而不会导致重复执行,也就不会浪费设备中的系统资源。
进一步地,所述装置还包括:
第二判断单元,用于根据预设任务执行顺序判断下一任务是否为所述目标任务;
执行单元,用于当下一任务为所述目标任务时,利用更改后的所述目标配置信息执行所述目标任务。
进一步地,所述装置还包括:
第一通知单元,用用于当未按照所述目标任务的当前配置信息执行过所述目标任务时,通过所述预设代理模块通知未执行过所述目标任务;
第二通知单元,用于当按照所述目标任务的当前配置信息执行过所述目标任务时,通过所述预设代理模块通知已执行过所述目标任务。
其中,所述第一判断单元12包括:
第一获取子单元,用于获取本地存储的任务标识与执行状态之间的第一对应关系;
第一查找子单元,用于在所述第一对应关系中查找与所述目标任务的任务标识相对应的执行状态;
第一确定子单元,用于当所述执行状态为已执行状态时,按照所述目标任务的当前配置信息执行过所述目标任务;
第二确定子单元,用于当所述执行状态为未执行状态时,确定未按照所述目标任务的当前配置信息执行过所述目标任务。
进一步地,所述装置还包括:
变更单元,用于当以所述目标配置信息执行完所述目标任务之后,在所述第一对应关系中,将与所述目标任务的任务标识相对应的执行状态变更为已执行状态。
其中,所述更改单元13包括:
第二获取子单元,用于获取本地存储的任务标识与配置信息之间的第二对应关系;
第二查找子单元,用于在所述第二对应关系中查找与所述目标任务的任务标识相对应的配置信息;
替换子单元,用于将所述配置信息替换为所述目标配置信息,以实现将所述目标任务的当前配置信息更改为所述目标配置信息。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和变更。本发明的范围仅由所附的权利要求来限制。