一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务的异步处理方法和装置、存储介质及电子装置与流程

2022-02-20 13:47:32 来源:中国专利 TAG:


1.本发明涉及通信领域,具体而言,涉及一种任务的异步处理方法和装置、存储介质及电子装置。


背景技术:

2.目前,通常使用android设备执行场景脚本文件来解决在设备端运行javascript引擎的问题,在执行场景脚本文件的过程中,为了实现对android设备的控制,需要先启动javascript引擎,然后执行场景脚本文件,在场景脚本文件执行完毕后,再关闭引擎。如果多次执行场景脚本文件,就必须多次重复开启引擎、执行场景脚本文件、随即关闭引擎的操作。这种执行机制具有不可避免的缺陷,会造成以下问题:
3.随着场景脚本文件执行频率升高,启动引擎、关闭引擎的操作次数变多所造成的内存频繁申请与频繁释放,会导致内存变得不连续,不仅出现了内存碎片化的问题,还影响了场景脚本执行性能。
4.针对相关技术中,在场景脚本文件执行频率升高的情况下,引擎频繁开关导致的内存碎片化的问题,尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种任务的异步处理方法和装置、存储介质及电子装置,以至少解决相关技术中,在场景脚本文件执行频率升高的情况下,引擎频繁开关导致的内存碎片化的问题。
6.根据本发明实施例的一个实施例,提供了一种任务的异步处理方法,包括:在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;通过所述脚本主线程预加载本地场景的所有场景脚本文件;获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
7.在一个示例性实施例中,上述方法还包括:在接收到设备发送的设备变化信息的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务;确定所述属性变化任务对应的第二场景脚本文件;根据所述设备变化属性对所述第二场景脚本文件进行预设操作以更新所述第二场景脚本文件。
8.在一个示例性实施例中,上述方法在接收到设备发送的设备变化信息的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务,包括:确定所述设备变化属性是否满足预设条件,其中,所述预设条件至少包括以下之一:所述设备变化属性为移动终端的自身物理属性;所述设备变化属性为所述移动终端监测到的环境属性;在满足预设条件的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务。
9.在一个示例性实施例中,获取待执行的执行任务,并在所述场景脚本文件中确定所述执行任务对应的第一场景脚本文件之前,还包括:在所述执行任务为多个的情况下,确定多个所述执行任务的任务队列;根据预设请求的请求类型确定所述任务队列中的多个执行任务的执行优先级,其中,所述预设请求用于触发所述执行任务,所述请求类型包括以下至少之一:手动请求,自动请求;根据所述执行优先级确定所述多个执行任务的执行顺序。
10.在一个示例性实施例中,获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件之后,所述方法还包括:从所述执行顺序中获取所述待执行的执行任务所对应的第一执行顺序;根据所述第一执行顺序确定所述第一场景脚本文件在所述异步架构程序中的第二执行顺序,以指示所述异步架构程序按照所述第二执行顺序执行所述第一场景脚本文件。
11.在一个示例性实施例中,指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理包括:在所述异步架构程序中的待执行脚本文件的执行顺序为固定的第三执行顺序,且所述执行任务为多个的情况下,获取多个所述执行任务中每个执行任务的执行时间;按照所述第三执行顺序和所述每个任务的执行时间依次执行多个所述执行任务。
12.在一个示例性实施例中,指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理还包括:在所述异步架构程序中的待执行脚本文件的执行顺序为非固定的第四执行顺序的情况下,接收用于请求执行目标任务的任务执行请求;获取所述目标任务的开始执行时刻和结束执行时刻,并根据所述开始执行时刻和结束执行时刻确定所述目标任务在所述第四执行顺序中的目标执行顺序。
13.根据本发明实施例的另一个实施例,还提供了一种任务的异步处理装置,包括:启动模块,用于在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;预加载模块,用于通过所述脚本主线程预加载本地场景的所有场景脚本文件;确定模块,用于获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;指示模块,用于指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
14.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任务的异步处理方法。
15.根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的任务的异步处理方法。
16.在本发明实施例中,通过所述脚本主线程预加载本地场景的所有场景脚本文件之后,获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件,并指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理;采用上述技术方案,解决了在场景脚本文件执行频率升高的情况下,引擎频繁开关导致的内存碎片化的问题,提高了场景脚本文件的执行性能。
附图说明
17.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
18.图1是本发明实施例的一种任务的异步处理方法的计算机终端的硬件结构框图;
19.图2是根据本发明实施例的任务的异步处理方法的流程图(一);
20.图3是根据本发明实施例的任务的异步处理方法的流程图(二);
21.图4是根据本发明实施例的任务的异步处理方法的示意图;
22.图5是根据本发明实施例的一种任务的异步处理装置的结构框图。
具体实施方式
23.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
24.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
25.本技术实施例所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种任务的异步处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
26.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的任务的异步处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
27.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括
计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
28.在本实施例中提供了一种任务的异步处理方法,应用于上述计算机终端,图2是根据本发明实施例的任务的异步处理方法的流程图(一),该流程包括如下步骤:
29.步骤s202,在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;
30.需要说明的是,上述脚本引擎可以理解为计算机编程语言的解释器,用于解释执行程序文本,并将其翻译成计算机可以执行的机器代码,例如建立网站的php(hypertext preprocessor)就是一种面向对象的超文本预处理器,用于在服务器端执行脚本语言。
31.另外,上述脚本引擎还可以理解为一种处理脚本语言的虚拟机,例如javascript引擎,本身既是一种用于阅读和执行javascript源代码的解释器,又是一种用于处理javascript脚本的虚拟机。
32.需要说明的是,上述场景脚本文件可以理解为不同环境下的场景,例如家庭环境下的回家场景、离家场景或者影院场景。其中,场景脚本的格式类型可以为json(javascript object notation)格式。
33.步骤s204,通过所述脚本主线程预加载本地场景的所有场景脚本文件;
34.需要说明的是,步骤s204中通过本地场景的所有场景脚本文件进行预加载,可以在执行本地场景的所有场景脚本文件之前,预先获取执行过程中的执行时间,从而确定执行本地场景的所有场景脚本文件的初始执行顺序。在只需要执行本地场景的所有场景脚本文件的情况下,按照初始执行顺序执行本地场景的所有场景脚本文件即可。
35.其中,场景脚本文件可以简称为场景脚本。
36.步骤s206,获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;
37.需要说明的是,上诉待执行的执行任务可以理解为执行上述场景脚本文件的任务,可以通过程序自动启动,也可以通过响应目标对象的执行请求启动。其中,目标对象可以理解为人,也可以理解为机器,本发明对此不做限制。
38.在一个实施例中,在目标对象为人的情况下,上述执行请求可以为目标对象对设备端发送的语音命令,例如“调小音乐播放器的音量”、“关闭空调”、“打开热水器”等。
39.步骤s208,指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
40.需要说明的是,上述异步架构程序可以理解与时间相关的处理程序,例如基于libuv的网络库的异步架构程序可以实现定时器、异步访问文件系统等功能。其中,libuv是一个跨平台的基于事件驱动的异步io库,包括进程、线程、定时器、进程间通信等事件。
41.通过上述步骤,在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;通过所述脚本主线程预加载本地场景的所有场景脚本文件;获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;指示所述脚本主线程启动的异步架构程序根据所述第一场景脚
本文件对所述执行任务进行异步处理,解决了相关技术中,在场景脚本文件执行频率升高的情况下,引擎频繁开关导致的内存碎片化的问题,提高了场景脚本文件的执行性能。
42.在一个示例性实施例中,还提供了一种技术方案,包括:在接收到设备发送的设备变化信息的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务;确定所述属性变化任务对应的第二场景脚本文件;根据所述设备变化属性对所述第二场景脚本文件进行预设操作以更新所述第二场景脚本文件。
43.需要说明的是,上述预设操作可以包括新增场景脚本文件、删除场景脚本文件、修改脚本场景文件等操作,本发明对此不做限定。
44.需要说明的是,上述设备变化信息可以理解为移动终端接收到的指令信息。在家用电器为设备的情况下,用户可以通过移动终端发送设备变化信息来控制家用电器,家用电器可以包括音乐播放器,智能热水器和智能空调等。
45.在一个实施例中,设备可以为音乐播放器,如果音乐播放器接收到“加大音量”的指令信息,则设备变化信息为“加大音量”。
46.在一个示例性实施例中,提供了一种在接收到设备发送的设备变化信息的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务的技术方案,包括:确定所述设备变化属性是否满足预设条件,其中,所述预设条件至少包括以下之一:所述设备变化属性为移动终端的自身物理属性;所述设备变化属性为所述移动终端监测到的环境属性;在满足预设条件的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务。
47.需要说明的是,上述移动终端的自身物理属性可以包括移动终端的电量、移动终端的耗材、移动终端的使用寿命等。
48.在一个实施例中,在移动终端的自身物理属性为移动终端的电量的情况下,如果移动终端的当前电量值低于工作电量值,则根据移动终端的当前电量值和设备标识生成“充电”的属性变化任务。例如,移动终端的设备标识为id0a,移动终端的当前电量值为200ma,移动终端的工作电量值为300ma,生成对id0a对应的移动终端进行充电的属性变化任务。
49.在一个实施例中,在移动终端的自身物理属性为移动终端的使用寿命的情况下,如果移动终端的当前寿命值大于预设寿命值,则根据移动终端的当前寿命值和设备标识生成的“报废”的属性变化任务。例如,移动终端的设备标识为id0b,移动终端的当前寿命值为20年,移动终端的预设寿命值为18年,生成对id0b对应的移动终端进行报废的属性变化任务。
50.需要说明的是,上述环境属性可以包括移动终端所处环境的天气和地理。其中,可以通过移动终端的传感器获取得到的湿度、温度、污染度等信息确定天气,也可以通过移动终端的定位系统获取移动终端的地理位置。
51.在一个示例性实施例中,为了更好的理解步骤s206中如何获取待执行的执行任务,并在所述场景脚本文件中确定所述执行任务对应的第一场景脚本文件,本实施例提供了一种技术方案,包括:在所述执行任务为多个的情况下,确定多个所述执行任务的任务队列;根据预设请求的请求类型确定所述任务队列中的多个执行任务的执行优先级,其中,所述预设请求用于触发所述执行任务,所述请求类型包括以下至少之一:手动请求,自动请
求;根据所述执行优先级确定所述多个执行任务的执行顺序。
52.在一个实施例中,可以设置手动请求的优先级高于自动请求。在接收到多个执行任务的情况下,根据接收到预设请求的时间顺序确定手动请求对应的执行任务的执行顺序之后,再设置自动请求对应的执行任务的执行顺序。
53.另外,参照上述实施例还可以得到自动请求的优先级高于手动请求的技术方案,本发明在此不做赘述。
54.在一个示例性实施例中,还提供了一种在获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件之后的技术方案,包括:从所述执行顺序中获取所述待执行的执行任务所对应的第一执行顺序;根据所述第一执行顺序确定所述第一场景脚本文件在所述异步架构程序中的第二执行顺序,以指示所述异步架构程序按照所述第二执行顺序执行所述第一场景脚本文件。
55.在一个示例性实施例中,为了更好的理解上述步骤s208中如何指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理,提供了一种技术方案,包括:在所述异步架构程序中的待执行脚本文件的执行顺序为固定的第三执行顺序,且所述执行任务为多个的情况下,获取多个所述执行任务中每个执行任务的执行时间;按照所述第三执行顺序和所述每个任务的执行时间依次执行多个所述执行任务。
56.在一个示例性实施例中,为了更好的理解上述步骤s208中指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理还包括:在所述异步架构程序中的待执行脚本文件的执行顺序为非固定的第四执行顺序的情况下,接收用于请求执行目标任务的任务执行请求;获取所述目标任务的开始执行时刻和结束执行时刻,并根据所述开始执行时刻和结束执行时刻确定所述目标任务在所述第四执行顺序中的目标执行顺序。
57.为了更好的理解上述任务的异步处理方法的过程,以下再结合可选实施例对上述任务的异步处理的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
58.图3是根据本发明实施例的任务的异步处理方法的流程图(二),在本实施例中提供了一种应用场景为家庭环境的任务的异步处理方法,如图3所示,具体如下步骤:
59.步骤s302:初始化javascript引擎;
60.步骤s304:启动libuv异步框架程序;
61.需要说明的是,上述异步架构程序可以理解与时间相关的处理程序,例如基于libuv的网络库的异步架构程序可以实现定时器、异步访问文件系统等功能。其中,libuv是一个跨平台的基于事件驱动的异步io库,包括进程、线程、定时器、进程间通信等事件。
62.步骤s306:执行任务队列中的执行任务;
63.步骤s308:载入场景脚本文件;
64.需要说明的是,步骤s308中通过将场景脚本载入至内存来对本地场景的所有场景脚本文件进行预加载,可以在执行本地场景的所有场景脚本文件之前,预先获取执行过程中的执行时间,从而确定执行本地场景的所有场景脚本文件的初始执行顺序。在只需要执行本地场景的所有场景脚本文件的情况下,按照初始执行顺序执行本地场景的所有场景脚本文件即可。
65.步骤s310:执行场景脚本文件;
66.步骤s312:关闭javascript引擎。
67.在本发明实施例中,用户在家庭环境下为不同的场景创建不同的场景脚本,例如回家场景、离家场景、影院场景等,对javascript引擎进行初始化后,启动一个主线程来提供执行该场景脚本文件的运行环境,该运行环境基于异步框架程序,因此还具备持续处理不同场景脚本文件的能力。
68.图4是根据本发明实施例的任务的异步处理方法的示意图。在执行如图4所示的任务的异步处理方法之前,初始化javascript引擎,启动javascript主线程。
69.图4的任务的异步处理方法的具体步骤如下:
70.1)预加载用户(相当于上述目标对象)创建的所有本地场景脚本文件到内存;
71.需要说明的是,如果用户对场景脚本文件进行新增、删除、修改操作,可以实现对场景脚本的更新。
72.2)任务进入任务队列;
73.其中,执行请求分为2种:手动请求和自动请求。多个执行请求对应有多个执行任务,创建任务队列实现可以对多个执行任务进行管理,例如,对执行任务进行排序、新增执行任务等。
74.在一个实施例中,如果用户从移动终端发起执行请求,则执行手动请求对应的场景。
75.3)javascript主线程领取执行任务;
76.4)执行任务队列中的执行任务。
77.在一个实施例中,如果用户家里的设备上报了设备变化属性,需要添加一个属性变化任务,javascript主线程取到属性变化任务后会利用预加载的场景脚本文件,根据设备id(相当于上述设备标识)与预加载场景脚本文件中的devid相同来判断能否执行场景脚本文件。其中,上述场景脚本文件中的devid可以理解为场景脚本文件的唯一标识。
78.其中,javascript主线程启动的libuv异步框架程序为多个执行任务的处理业务提供了时间处理能力,即允许用户进行如下操作:在预设时间段后执行请求对应的场景脚本文件,其中,预设时间段可以为30秒、1分钟等,本发明对此不做限制。
79.例如,在一个实施例中,在任务队列中包括执行任务1、执行任务2、执行任务3的情况下,用户发起面向执行任务4的执行请求,则可以在30秒后执行此执行任务4对应的场景脚本文件。
80.本实施例提供的技术方案将相关技术中的环境场景引擎改造为javascript引擎,即将本地场景的javascript文件抽象为json文件,减小了每个场景脚本文件的存储空间。
81.本实施例提供的技术方案通过启动javascript主线程来执行场景脚本文件,解决了每新增一次执行请求就不得不重启一次javascript引擎的问题,降低了引擎开关的次数,从而降低了内存的申请次数,解决了引擎频繁开关导致的内存碎片化的问题。
82.本实施例提供的技术方案通过javascript主线程启动的libuv异步框架程序实现了对多个执行任务的异步处理,提高了任务执行效率。
83.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
84.图5是根据本发明实施例的一种任务的异步处理装置的结构框图。如图5所示,包括:
85.启动模块52,用于在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;
86.需要说明的是,上述脚本引擎可以理解为计算机编程语言的解释器,用于解释执行程序文本,并将其翻译成计算机可以执行的机器代码,例如建立网站的php(hypertext preprocessor)就是一种面向对象的超文本预处理器,用于在服务器端执行脚本语言。
87.另外,上述脚本引擎还可以理解为一种处理脚本语言的虚拟机,例如javascript引擎,本身既是一种用于阅读和执行javascript源代码的解释器,又是一种用于处理javascript脚本的虚拟机。
88.需要说明的是,上述场景脚本文件可以理解为不同环境下的场景,例如家庭环境下的回家场景、离家场景或者影院场景。其中,场景脚本的格式类型可以为json(javascript object notation)格式。
89.预加载模块54,用于通过所述脚本主线程预加载本地场景的所有场景脚本文件;
90.需要说明的是,通过本地场景的所有场景脚本文件进行预加载,可以在执行本地场景的所有场景脚本文件之前,预先获取执行过程中的执行时间,从而确定执行本地场景的所有场景脚本文件的初始执行顺序。在只需要执行本地场景的所有场景脚本文件的情况下,按照初始执行顺序执行本地场景的所有场景脚本文件即可。
91.确定模块56,用于获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;
92.需要说明的是,上诉待执行的执行任务可以理解为执行上述场景脚本文件的任务,可以通过程序自动启动,也可以通过响应目标对象的执行请求启动。其中,目标对象可以理解为人,也可以理解为机器,本发明对此不做限制。
93.在一个实施例中,在目标对象为人的情况下,上述执行请求可以为目标对象对设备端发送的语音命令,例如“调小音乐播放器的音量”、“关闭空调”、“打开热水器”等。
94.指示模块58,用于指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
95.需要说明的是,上述异步架构程序可以理解与时间相关的处理程序,例如基于libuv的网络库的异步架构程序可以实现定时器、异步访问文件系统等功能。其中,libuv是一个跨平台的基于事件驱动的异步io库,包括进程、线程、定时器、进程间通信等事件。
96.通过上述装置,在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;通过所述脚本主线程预加载本地场景的所有场景脚本文件;获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理,解决了相关技术中,在场景脚本文件执行频率升高的情况下,引擎频繁开关导致的内存碎片化的问题,提高了场景脚本文件的执行性能。
97.可选的,上述任务的异步处理装置还包括更新模块,更新模块用于在接收到设备发送的设备变化信息的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务;确定所述属性变化任务对应的第二场景脚本文件;根据所述设备变化属性对所述第二场景脚本文件进行预设操作以更新所述第二场景脚本文件。
98.需要说明的是,上述预设操作可以包括新增场景脚本文件、删除场景脚本文件、修改脚本场景文件等操作,本发明对此不做限定。
99.需要说明的是,上述设备变化信息可以理解为设备接收到的指令信息。在本发明实施例中,以设备为家用电器为例,家用电器可以包括音乐播放器,智能热水器和智能空调等。
100.在一个实施例中,设备可以为音乐播放器,在音乐播放器上设置有音量加减的开关,如果音乐播放器接收到“加大音量”的指令信息,则设备变化信息为“加大音量”。
101.可选的,上述任务的异步处理装置还包括条件确定模块,预设条件确定模块用于确定所述设备变化属性是否满足预设条件,其中,所述预设条件至少包括以下之一:所述设备变化属性为移动终端的自身物理属性;所述设备变化属性为所述移动终端监测到的环境属性;在满足预设条件的情况下,根据所述设备变化信息中携带的设备变化属性和设备标识生成属性变化任务。
102.可选的,上述任务的异步处理装置还包括任务队列确定模块,用于在所述执行任务为多个的情况下,确定多个所述执行任务的任务队列;根据预设请求的请求类型确定所述任务队列中的多个执行任务的执行优先级,其中,所述预设请求用于触发所述执行任务,所述请求类型包括以下至少之一:手动请求,自动请求;根据所述执行优先级确定所述多个执行任务的执行顺序。
103.可选的,上述任务的异步处理装置还包括执行模块,执行模块用于从所述执行顺序中获取所述待执行的执行任务所对应的第一执行顺序;根据所述第一执行顺序确定所述第一场景脚本文件在所述异步架构程序中的第二执行顺序,以指示所述异步架构程序按照所述第二执行顺序执行所述第一场景脚本文件。
104.在一个示例性实施例中,指示模块,还用于在所述异步架构程序中的待执行脚本文件的执行顺序为固定的第三执行顺序,且所述执行任务为多个的情况下,获取多个所述执行任务中每个执行任务的执行时间;按照所述第三执行顺序和所述每个任务的执行时间依次执行多个所述执行任务。
105.在一个示例性实施例中,指示模块,还用于在所述异步架构程序中的待执行脚本文件的执行顺序为非固定的第四执行顺序的情况下,接收用于请求执行目标任务的任务执行请求;获取所述目标任务的开始执行时刻和结束执行时刻,并根据所述开始执行时刻和结束执行时刻确定所述目标任务在所述第四执行顺序中的目标执行顺序。
106.本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
107.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
108.s1,在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;
109.s2,通过所述脚本主线程预加载本地场景的所有场景脚本文件;
110.s3,获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;
111.s4,指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
112.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
113.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
114.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
115.s1,在脚本引擎完成初始化的情况下,启动脚本主线程,其中,所述脚本主线程用于提供场景脚本文件的运行环境;
116.s2,通过所述脚本主线程预加载本地场景的所有场景脚本文件;
117.s3,获取待执行的执行任务,并在所述所有场景脚本文件中确定所述执行任务对应的第一场景脚本文件;
118.s4,指示所述脚本主线程启动的异步架构程序根据所述第一场景脚本文件对所述执行任务进行异步处理。
119.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
120.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
121.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
122.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献