System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种任务处理方法、装置、设备和存储介质。
技术介绍
1、随应用程序的功能迭代,应用程序的基础功能也需不断更新和完善,如更新或新增应用程序的软件开发工具包(software development kit,sdk),在更新功能后,通常通过演示文件以引导相关人员合理使用新增插件。然而在复杂的多线程业务场景中,若未准备好功能调用的前置条件,或未适配任务执行的依赖变更,如遗漏新增sdk的前置条件设置或更新sdk的任务依赖修订,则会导致调用错误。
2、例如,多线程业务场景中需使用网络基础组件、消息推送和闪屏广告三种sdk,在使用推送和闪屏sdk前,需先通过网络基础组件申请设备标识的全局唯一标识符(globallyunique identifier,guid),推送和闪屏sdk需在获取到guid后请求对应的功能sdk业务。功能迭代前,在启动程序后马上获取guid,然后基于guid对其它sdk做初始化,但随程序功能迭代,需增加用户身份证明(user identification,uid)来标识同一设备下的不同账户,因此在启动程序后需发起两个请求以获取guid和uid,推送和闪屏sdk也需要修改为同时获取到guid和uid后再进行业务处理。此时,若未更改推送和闪屏广告sdk设置,则会因缺少某id字段而导致闪屏和推送sdk初始化失败,最终影响业务功能。
3、因此,需提供一种改进的任务处理方法,以避免上述调用错误。
技术实现思路
1、本申请提供了一种任
2、一方面,本申请提供了一种任务处理方法,所述方法包括:
3、响应于任务处理请求,获取待处理任务对应的队列容器,所述队列容器持有串行任务队列,所述串行任务队列中的元素对应于所述待处理任务的多个子任务中的一个子任务,所述串行任务队列的元素排序对应于所述多个子任务的任务执行顺序;
4、在所述串行任务队列中存在目标元素的情况下,基于所述目标元素依赖的多个前序元素创建所述目标元素对应的任务组,所述目标元素对应的目标子任务的执行依赖于所述前序元素对应的前序子任务的函数执行;
5、创建所述任务组对应的任务信号量,所述任务信号量的计数值表征所述多个前序元素对应的各前序子任务的任务完成量,所述任务信号量的最大计数值对应于所述任务组的前序元素数量;
6、响应于所述计数值达到所述最大计数值,触发所述目标子任务的调度执行,得到目标执行结果。
7、另一方面提供了一种任务处理装置,所述装置包括:
8、获取模块:用于响应于任务处理请求,获取待处理任务对应的队列容器,所述队列容器持有串行任务队列,所述串行任务队列中的元素对应于所述待处理任务的多个子任务中的一个子任务,所述串行任务队列的元素排序对应于所述多个子任务的任务执行顺序;
9、第一创建模块:用于在所述串行任务队列中存在目标元素的情况下,基于所述目标元素依赖的多个前序元素创建所述目标元素对应的任务组,所述目标元素对应的目标子任务的执行依赖于所述前序元素对应的前序子任务的函数执行;
10、第二创建模块:用于创建所述任务组对应的任务信号量,所述任务信号量的计数值表征所述多个前序元素对应的各前序子任务的任务完成量,所述任务信号量的最大计数值对应于所述任务组的前序元素数量;
11、触发模块:用于响应于所述计数值达到所述最大计数值,触发所述目标子任务的调度执行,得到目标执行结果。
12、另一方面提供了一种计算机设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的任务处理方法。
13、另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的任务处理方法。
14、另一方面提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的任务处理方法。
15、另一方面提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的任务处理方法。
16、另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令被处理器执行时实现如上述的任务处理方法。
17、本申请提供的任务处理方法、装置、设备、存储介质、服务器、终端、计算机程序和计算机程序产品,具有如下技术效果:
18、本申请响应于任务处理请求,获取待处理任务对应的队列容器,队列容器持有串行任务队列,串行任务队列中的元素对应于待处理任务的多个子任务中的一个子任务,串行任务队列的元素排序对应于多个子任务的任务执行顺序,以通过队列容器和串行任务队列对待处理任务进行管理,在多线程任务场景下,便于实现任务的统一监测。然后,在串行任务队列中存在目标元素的情况下,基于目标元素依赖的多个前序元素创建目标元素对应的任务组,并创建任务组对应的任务信号量,任务信号量的计数值表征多个前序元素对应的各前序子任务的任务完成量,任务信号量的最大计数值对应于任务组的前序元素数量;进而响应于计数值达到最大计数值,触发目标子任务的调度执行,得到目标执行结果。如此,通过队列和信号量来阻塞、同步线程任务,实现多线程任务更新的自适应配置,避免sdk新增或更新等功能迭代造成的调用错误,同时能够充分利用资源,降低任务执行的资源开销。
本文档来自技高网...【技术保护点】
1.一种任务处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述串行任务队列中存在目标元素的情况下,基于所述目标元素依赖的多个前序元素创建所述目标元素对应的任务组之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,在响应于所述计数值达到所述最大计数值,触发所述目标子任务的调度执行,得到目标执行结果之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,在所述触发所述目标子任务的调度执行之后,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,在所述将所述调用对象封装为预设类型的封装对象之后,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,所述触发所述目标子任务的调度执行,得到目标执行结果包括:
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述响应于任务处理请求,获取待处理任务对应的队列容器包括:
9.根据权利要求8所述的方法,其特征在于
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
12.一种任务处理装置,其特征在于,所述装置包括:
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-11中任一项所述的任务处理方法。
14.一种计算机设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-11中任一项所述的任务处理方法。
15.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1-11中任一项所述的任务处理方法。
...【技术特征摘要】
1.一种任务处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述串行任务队列中存在目标元素的情况下,基于所述目标元素依赖的多个前序元素创建所述目标元素对应的任务组之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,在响应于所述计数值达到所述最大计数值,触发所述目标子任务的调度执行,得到目标执行结果之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,在所述触发所述目标子任务的调度执行之后,所述方法还包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,在所述将所述调用对象封装为预设类型的封装对象之后,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,所述触发所述目标子任务的调度执行,得到目标执行结果包括:
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述响应于任务处理请求,获取待处理任务对应的队列容器包括:<...
【专利技术属性】
技术研发人员:苟亚明,
申请(专利权)人:腾讯云计算北京有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。