面向终端的任务调度方法及系统、存储介质、电子设备与流程

文档序号:14950523发布日期:2018-07-17 22:26阅读:149来源:国知局

本发明涉及一种音响,尤其涉及面向终端的任务调度方法及系统。



背景技术:

一个成熟的系统往往是由多个部分有机结合组成。作为一个终端应用,更是会由多种技术组合而成,面对不同的终端系统(windows、mac、linux、android、ios),实现方式也各不相同。面对终端技术的多样性,当服务端或网页需要使用终端的某一功能时,往往没有有效的解决办法。面对终端,特别是移动端日益加快的发版节奏以及复杂多变的业务需求,随着软件项目的扩大,使用技术的逐渐增多,每项技术之间的相互调用越来越多,如图1所示,基本除android和ios不存在互相调用以外,其它技术均会在客户端被相互调用,如此,软件端,需要开发针对每一组对应关系的协议对应关系,势必造成重复开发与效率低下,无法满足快节奏的移动端更新换代的需求,急需一种方式能统一调度功能和回调或急需一种统一的调度中心,用于分发、处理任务。



技术实现要素:

为了克服现有技术的不足,本发明的目的在于提供面向终端的任务调度方法及系统,本发明采用统一的任务调度系统分发、处理任务,通过协议依赖,快捷而方便的切换实现方式;本发明兼容uri规范,能在更多的通道中使用,具有广泛的兼容性。

本发明提供面向终端的任务调度方法,包括以下步骤:

任务协议获取,面向终端的任务调度系统统一获取若干协议调用方的任务调用协议;

协议解析,面向终端的任务调度系统根据协议规范对所述任务调用协议进行解析,提取所述任务调用协议中若干字段值;

协议执行,面向终端的任务调度系统根据所述字段值调用对应的协议实现方执行所述任务调用协议。

进一步地,还包括步骤:协议参数检查,校验协议中参数的数量、参数类型、必选参数的存在性、调用权限。

进一步地,还包括步骤:协议参数转换,若协议实现方与协议调用方的参数类型不一致时,将所述任务调用协议的参数类型转换为面向协议实现方的参数类型。

进一步地,还包括步骤:协议查询,查找所述任务调用协议是否已被实现,若是,则对所述任务调用协议已实现的若干版本进行收集,并根据所述版本优先级进行排序。

进一步地,所述步骤协议执行还包括执行反馈,查询协议实现方的执行所述任务调用协议的执行结果,若捕捉到执行异常,则选择优先级级别降低一级的所述任务调用协议已实现的版本,并跳转至步骤协议解析;若未捕捉到执行异常,则发送所述任务调用协议执行结果回调至协议调用方。

进一步地,所述协议规范兼容uri规范。

一种电子设备,包括处理器;存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行面向终端的任务调度方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行面向终端的任务调度方法。

面向终端的任务调度系统,包括协议获取模块、协议解析模块、协议执行模块;

所述协议获取模块,用于获取若干协议调用方的任务调用协议;

所述协议解析模块,用于根据协议规范解析并提取所述任务调用协议中字段值;

所述协议执行模块,用于根据所述字段值调用对应的协议实现方执行所述任务调用协议。

进一步地,所述面向终端的任务调度系统还包括协议参数检测模块、协议参数转换模块、协议优先级决策模块、协议收集模块、协议反馈模块、协议清理模块;

协议参数检测模块,用于对所述任务调用协议进行参数校验,所述参数校验包括参数数量检查、参数类型检查、必选参数存在性验证、调用权限验证;

协议参数转换模块,用于匹配协议调用方与协议实现方内的协议参数类型;

协议优先级决策模块,用于决策所述调用权限的优先级,其中协议调用方的原生协议高于reactnative协议,reactnative协议高于html5协议;

协议收集模块,用于收集已实现所述任务调用协议的版本,并根据所述版本优先级进行排序;

协议反馈模块,用于判断所述任务调用协议是否执行异常,若捕捉到执行异常,则选择优先级级别降低一级的所述任务调用协议已实现的版本,并发送至所述协议解析模块进行协议解析;若未捕捉到执行异常,则发送所述任务调用协议执行结果回调至协议调用方;

协议清理模块,用于对已执行所述任务调用协议执行结果回调的所述任务调用协议进行调用清理。

相比现有技术,本发明的有益效果在于:

本发明提供面向终端的任务调度方法,包括步骤任务协议获取,面向终端的任务调度系统统一获取若干协议调用方的任务调用协议;协议解析,面向终端的任务调度系统根据协议规范对所述任务调用协议进行解析,提取所述任务调用协议中若干字段值;协议执行,面向终端的任务调度系统根据所述字段值调用对应的协议实现方执行所述任务调用协议。本发明采用协议依赖,快捷而方便的切换实现方式,这使得以下场景变得方便:

1.允许通过服务器指定页面某个按扭点击后的处理程序;

2.允许通过服务器指定推送通知点击后的处理程序;

3.在外部浏览器中打开html5页面时,使用html5提供的简单组件;但在app内部打开相同页面,无需修改代码,自动切换到app内部实现的体验更更优的组件。

4.优先级更高的组件(通常是原生组件)因为某个原因频繁崩溃时,可以自动降级到优先级更低的组件(reactnative组件或html5组件);

5.模块间的解耦彻底,可以随时重构模块、切换模块的实现。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为现有技术中面向终端的任务调度示意图;

图2为采用本发明的面向终端的任务调度系统的任务调度示意图;

图3为本发明的面向终端的任务调度方法流程示意图;

图4为本发明的面向终端的任务调度系统框架示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

面向终端的任务调度方法,如图3所示,包括以下步骤:

任务协议获取,面向终端的任务调度系统统一获取若干协议调用方的任务调用协议;如图2所示,其中,协议调用方包括服务端、html5、android、ios、reactnative,协议调用方将任务调用协议统一汇总至面向终端的任务调度系统;协议实现方即终端设备的系统实现平台,包括android、ios、reactnative。

协议解析,面向终端的任务调度系统根据协议规范对任务调用协议进行解析,提取任务调用协议中若干字段值;其中,协议规范为兼容uri规范(rfc3986)的一个扩展约定,以字符串的方式描述调用的模块、方法以及传输的参数。

协议执行,面向终端的任务调度系统根据字段值调用对应的协议实现方执行任务调用协议。uri与协议规范的对应关系如表1所示:

表1uri与协议规范的对应关系表

其中,例如authority=[userinfo"@"]host[":"port]中只使用host,没有使用userinfo与port,这两部分在uri中为可选项而非必须项;

appname:表示app名字的代称,由全小写的英文字母组成;

methodname:表示要调用的模块方法名字,有且只有一个模块方法名字;

modulenames:表示模块方法字段所在的模块名,为?前面的内容,可以存在多个,例如当存在多个模块名时,表示依次调用多个模块的同名方法;

params:与uri的query部分规范相同,为?后面的内容,以键值对的方式表示,且全面支持任意层级的数据和字典;特别地,当params中的某个键值与模块名同名时,该参数将只传递给该同名模块;

implementtype:表示用来指定该协议必须由指定的实现方式来打开,一般地,根据实现方式的优先级来打开。

例如,1、打开一个不带参数的模块userinfo为“app1://open/userinfo”,其中userinfo模块的open方法将收到这个请求,请求不带参数;

2、打开收银台,并将支付金额设置为100元为“app2://open/payment?amount=100.00”,其中payment模块的open方法将收到这个请求,请求携带一个amount参数,值为100.00;

3、打开钱包首页并要求实名认证为“app3://open/wallet/authentication?authentication[userid]=533”,其中wallet模块的open方法将收到这个请求,请求不带参数,同时authentication模块的open方法也会收到这个请求,并请求携带一个userid参数,值为533;

4、打开图片浏览器,传递数组为“app4://open/photoviewer?file[]=picture1.jpg&file[]=picture2.jpg&file[]=picture3.jpg”;

5、用app5内置浏览器打开百度并向服务器传递埋点信息为“app5://open/webv/dataembedding?webv[url]=http%3a%2f%2fwww.baidu.com&dataembedding[typeid]=openwebv&dataembedding[vals][url]=http%3a%2f%2fwww.baidu.com&dataembedding[vals][time]=169934109”或者采用简便方式为“app5://open/webv/dataembedding?url=http%3a%2f%2fwww.baidu.com&3typeid=openwebv&vals[url]=http%3a%2f%2fwww.baidu.com&vals[time]=169934109”,但在简便方式下,由于没有指定参数的归属,故在每个模块的方法都会收到4个参数,但这不会影响功能,每个方法会自行丢弃不使用的参数。

在一实施例中,面向终端的任务调度方法还包括步骤:协议参数检查,校验协议中参数的数量、参数类型、必选参数的存在性、调用权限;具体的,协议参数检查中还包括步骤:协议参数转换,若协议实现方与协议调用方的参数类型不一致时,将任务调用协议的参数类型转换为面向协议实现方的参数类型。

在一实施例中,面向终端的任务调度方法还包括步骤:协议查询,查找任务调用协议是否已被实现,若是,则对任务调用协议已实现的若干版本进行收集,并根据版本优先级进行排序。其中协议调用方的原生协议高于reactnative协议,reactnative协议高于html5协议。

在一实施例中,步骤协议执行还包括执行反馈,查询协议实现方的执行任务调用协议的执行结果,若捕捉到执行异常,则选择优先级级别降低一级的任务调用协议已实现的版本,并跳转至步骤协议解析;若未捕捉到执行异常,则发送任务调用协议执行结果回调至协议调用方。

一种电子设备,包括处理器;存储器;以及程序,其中程序被存储在存储器中,并且被配置成由处理器执行,程序包括用于执行面向终端的任务调度方法。一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行面向终端的任务调度方法。

面向终端的任务调度系统,如图4所示,包括协议获取模块、协议解析模块、协议执行模块;

协议获取模块,用于获取若干协议调用方的任务调用协议;

协议解析模块,用于根据协议规范解析并提取任务调用协议中字段值;

协议执行模块,用于根据字段值调用对应的协议实现方执行任务调用协议。

在一实施例中,如图4所示,面向终端的任务调度系统还包括协议参数检测模块、协议参数转换模块、协议优先级决策模块、协议收集模块、协议反馈模块、协议清理模块;其中:

协议参数检测模块,用于对任务调用协议进行参数校验,参数校验包括参数数量检查、参数类型检查、必选参数存在性验证、调用权限验证;

协议参数转换模块,用于匹配协议调用方与协议实现方内的协议参数类型;

协议优先级决策模块,用于决策调用权限的优先级,其中协议调用方的原生协议高于reactnative协议,reactnative协议高于html5协议;

协议收集模块,用于收集已实现任务调用协议的版本,并根据版本优先级进行排序;

协议反馈模块,用于判断任务调用协议是否执行异常,若捕捉到执行异常,则选择优先级级别降低一级的任务调用协议已实现的版本,并发送至协议解析模块进行协议解析;若未捕捉到执行异常,则发送任务调用协议执行结果回调至协议调用方;

协议清理模块,用于对已执行任务调用协议执行结果回调的任务调用协议进行调用清理。通过异步或同步的方式通知执行结果,若为跨容器调用协议,则由容器实现跨语言通讯及类型转换。

一般的,app分为原生和容器两个部分,其中容器是为其它技术提供的运行环境,例如reactnative和html5,因此app内存在提供给不同技术使用的多个容器;在app打包或者第一次启动时,面向终端的任务调度系统会自动收集原生实现的协议,并要求所有容器代为收集并返回自身技术所实现的协议。收集到原生及容器的协议集合后,优先级决策模块就会以原生协议高于reactnative协议,reactnative协议高于html5协议的优先级排序协议的实现;之后,每次执行协议时,便会优先给出优先级最高的协议实现,若执行过程中捕捉到执行异常,就自动降级,使用优先级低一级的协议实现。

本发明采用协议依赖,快捷而方便的切换实现方式,这使得以下场景变得方便:

1.允许通过服务器指定页面某个按扭点击后的处理程序;

2.允许通过服务器指定推送通知点击后的处理程序;

3.在外部浏览器中打开html5页面时,使用html5提供的简单组件;但在app内部打开相同页面,无需修改代码,自动切换到app内部实现的体验更更优的组件。

4.优先级更高的组件(通常是原生组件)因为某个原因频繁崩溃时,可以自动降级到优先级更低的组件(reactnative组件或html5组件);

5.模块间的解耦彻底,可以随时重构模块、切换模块的实现。

以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1