CN116009980A - 数据流处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据流处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116009980A CN116009980A CN202211592251.4A CN202211592251A CN116009980A CN 116009980 A CN116009980 A CN 116009980A CN 202211592251 A CN202211592251 A CN 202211592251A CN 116009980 A CN116009980 A CN 116009980A
- Authority
- CN
- China
- Prior art keywords
- data
- executable
- data stream
- stream
- executable data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本申请提出了一种数据流处理方法、装置、电子设备及计算机可读存储介质,其中,所述方法包括:在待处理的数据流中插入可执行数据;读取插入了所述可执行数据的所述数据流中的数据;利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。应用本申请提供的方法,在利用数据处理软件处理数据流时,只需在软件外设计可执行数据并将其插入数据流,即可使软件执行新的功能,无需停止软件进程以及重新修改和编译软件的代码,并且,由于可执行数据没有直接编写进软件代码中,也不会增加软件代码的体积。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据流处理方法、装置、电子设备及计算机可读存储介质。
背景技术
相关技术中,利用数据处理软件处理数据流时,需要预先编写好数据处理软件的代码,形成可执行程序后持续运行,并处理输入至软件的数据流。
但由于数据流中的数据一般为不可执行数据,其无法改变软件进程,如果需要软件修改/增加功能,则需要停掉软件中正在运行的程序,重新编写代码,重新编译后,再利用修改后的软件重新开始处理数据,而修改软件的过程长且复杂,容易出错,并且每一次需要软件修改/增加功能都要重复上述过程,不仅降低了工作效率,还增加了软件代码的体积。
发明内容
有鉴于此,本申请提出一种数据流处理方法、装置及电子设备。
本申请提供了一种数据流处理方法,包括:在待处理的数据流中插入可执行数据;读取插入了所述可执行数据的所述数据流中的数据;利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
基于同一发明构思,本申请还提供了一种数据流处理装置,包括:数据插入模块,被配置为在待处理的数据流中插入可执行数据;数据读取模块,被配置为读取插入了所述可执行数据的所述数据流中的数据;判断模块,被配置为利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;执行模块,被配置为响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
基于同一发明构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述数据流处理方法。
基于同一发明构思,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行上述数据流处理方法。
本申请提出了一种数据流处理方法、装置、电子设备及计算机可读存储介质,其中,所述方法包括:在待处理的数据流中插入可执行数据;读取插入了所述可执行数据的所述数据流中的数据;利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。应用本申请提供的方法,在利用数据处理软件处理数据流时,只需在软件外设计可执行数据并将其插入数据流,即可使软件执行新的功能,无需停止软件进程以及重新修改和编译软件的代码。并且,由于可执行数据没有直接编写进软件代码中,也不会增加软件代码的体积。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例数据流处理方法的流程示意图;
图2为本申请实施例数据处理软件的执行逻辑示意图;
图3为本申请实施例数据流处理装置的接口示意图;
图4为本申请实施例的电子设备硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
有鉴于此,本申请的一个实施例提供了一种数据流处理方法,如图1所示,包括:
步骤S110、在待处理的数据流中插入可执行数据。
具体实施时,可以根据实际需求确定所述可执行数据的插入位置,在此不做限定。
步骤S120、读取插入了所述可执行数据的所述数据流中的数据。一种具体的实施例中,所述步骤S102还包括将插入了所述可执行数据的所述数据流输入至数据处理软件,并利用所述数据处理软件读取所述数据流中的数据。
此处的读取为按照数据流中数据的输入顺序依次读取。
步骤S130、利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据。一种具体的实施例中,上述执行函数预先插入至上述数据处理软件。
输入至数据处理软件的数据流中的每个数据都要先经过所述执行函数判断其是否为可执行函数,若所述数据处理软件中没有插入执行函数,则读取到所述可执行函数时直接跳过即可。
步骤S140、响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
对于除所述可执行数据以外的其他数据,所述执行函数直接将其他数据返回给数据处理软件,使数据处理软件按照预设执行处理其他数据。
应用本申请实施例提供的方法,在利用数据处理软件处理数据流时,只需在软件外设计可执行数据并将其插入数据流,即可使软件执行新的功能,无需停止软件进程以及重新修改和编译软件的代码。由于可执行数据没有直接编写进软件代码中,也不会增加软件代码的体积。
并且,由于CPU机制的限制,某些软件的处理进程是无法随时停止的,只有在固定的时间点才会暂停进程查看是否接收到了程序员发送的中止信号,再去根据程序员发送的信号停止进程。应用本申请实施例提供的方法,通过合理安排所述可执行数据插入至数据流中的位置,只要软件中的执行函数读取到了可执行数据,就会立刻执行所述可执行数据中的指令参数,增加了程序员与软件之间的交互性。
具体实施时,所述数据流可以为1)用Kafka(一种开源流处理平台)的topic(每条发布到Kafka集群的消息类别)构成的数据流;2)用日志文件构成的数据流;3)数据库的新增数据构成的数据流;4)http接口收到的消息构成的数据流,其他有一连串数据构成且具有一定长度的数据流均可用于本申请的实施例。
与数据流相对应的,所述数据处理软件通常为数据密集型软件(或应用、进程),所述数据密集型软件在一段时间内持续运行,持续地接收数据流中的数据输入,并且输出根据输入数据计算的结果。本申请实施例中使用的数据处理软件包括:1)机器学习模型:通过不断的将训练数据的数据流输入到模型中,进行迭代,改变模型的参数,从而提升模型效果;2)实时ETL(Extract-Transform-Load,数据的抽取、转换、加载)程序:接收上游的数据流输入,对数据进行一定的处理,过滤掉多余的数据,转换数据形式后,将数据存入数据库;3)性能监控程序:持续接收系统的各个性能指标,如当前CPU占用率,内存占用率,形成系统状态实时报表等。其他数据密集型软件也可在本申请实施例中使用。
一种具体的实施例中,所述执行函数可以直接在数据处理软件的源代码中编写,虽然增加了一定的工作量,但后续无需进行任何变动,即可根据不同的可执行数据执行不同的指令,相比于反复修改软件的源代码,在源代码中编写执行函数能够提升工作效率。所述执行函数也可以做成第三方数据库,当需要用到执行函数时,软件可以直接从第三方数据库中直接导入执行函数。
所述执行函数的插入到数据处理软件的位置可以为软件接收数据的入口、处理数据的入口,也可以注册于软件的执行任务列表首位,也可以在软件内部数据交换的过程中通过插入执行函数进行数据的拦截,比如在软件中数据要依次经过线程1、线程2、线程3,其中线程3负责对数据进行处理,那么将执行函数插入至线程2后线程3前即可。所述执行函数的插入位置不限于上述位置,使数据流中的数据在进入数据处理软件的处理进程前先经过所述执行数据的插入位置均在本申请的保护范围之内。
下面提供一些执行函数插入至数据处理软件的具体实施例。对于应用functionprocess(data),执行函数run data的插入位置为应用接收数据的入口,代码实施为:function process(data){run data(data)+后续代码}。对于程序fucntion prepare_batch(data),执行函数run data的插入位置为程序数据读取的入口,代码实施为:fucntion prepare_batch(data){run data(data)+后续代码}。对于数据交换过程thread_producer—Queue—thread_consumer,其中,thread_producer为生产线程,Queue为数据队列,thread_consumer为消费线程,执行函数run data的插入位置为Queue与thread_consumer之间。对于执行任务列表为[process1,procees2,porcess3]的软件,执行函数rundata的插入位置为列表首位,具体实现为[run data,process1,procees2,porcess3],则该软件的调度器会首个调用执行函数run data。
在一些实施例中,所述可执行数据中包括标识符,所述标识符用于表征所述数据流中的数据为所述可执行数据,一种具体的实施例中,所述标识符位于所述可执行数据的起始处。一种更为具体的实施例中,所述可执行数据被设计为##Runable{some_json}结构,其中,##Runable为所述标识符,{some_json}中为包括了所述指令参数的指令代码。本申请实施例在具体实施时,上述标识符可替换为其他字母或数字的组合,其他用于表征所述数据流中的数据为所述可执行数据的标识符均在本申请的保护范围之内。
在一些实施例中,所述可执行数据的数据类型为预设数据类型。具体实施时,所述可执行数据的数据类型为string类型(字符串类型)。string是python、C++、java、VB等编程语言中的数据类型,string类型是一个特殊的对象,属于引用类型,不属于基本的数据类型(数据流中的其他数据的数据类型可以为基本的数据类型之一)。string类型的对象创建后,字符串一旦初始化就不能更改,因为string类型中所有字符串都是常量,对string类型数据的任何改变,都是返回一个新的string类型数据,所以数据处理软件不会将string类型的可执行数据当作数据流中的普通数据进行处理。本领域技术人员能够知悉如何将所述可执行数据的数据类型设置为string类型,在此不过多赘述。
在一些实施例中,如图2所示,所述步骤S130包括:
响应于确定所述数据流中的数据的数据类型为所述预设数据类型且确定所述数据流中的数据中包含所述标识符,确定所述所述数据流中的数据为所述可执行数据。
一种具体的实施例中,以所述执行函数以及数据处理软件均为python环境为例,可以通过type(data)语句判断数据流中的数据的数据类型是否为所述预设数据类型;当所述标识符位于所述可执行数据的起始处,可以通过data.startswith语句判断所述数据流中的数据中是否包含所述标识符。
具体实施时,所述执行函数还需判断所述可执行数据中的代码是否符合json规范。具体实施时,可以通过调用parse Json函数判断所述可执行数据中的代码是否符合json规范,若不符合规范,则发送报错信息。
在一些实施例中,所述指令参数至少包括所述可执行数据的执行功能类型,其中,所述执行功能类型包括直接执行、安装插件、卸载插件以及打印环境变量中的一种或多种。
在一种具体的实施例中,所述指令参数还包括所述可执行数据的执行语言以及执行动作,其中,上述执行功能类型中的直接执行具体为直接执行所述可执行数据中的执行动作。一种更为具体的实施例中,默认的执行类型为直接执行,默认的执行语言为python。
下面提供一些可执行数据及其指令参数的具体实施例。可执行数据1:##Runable{lang:python,type:execute,code:http.get("http://baidu.com"),condition:sys.platform==windows},其中,lang:python表示执行语言是python,type:execute表示执行功能类型为直接执行,code:http.get("http://baidu.com")为执行动作,表示请求一次http://baidu.com,condition:sys.platform==windows表示仅当进程运行在windows中时需要执行上述执行动作。
可执行数据2:##Runable{lang:python,type:install_plugin,link:https://software.org/plugin/log4j/install.bin},其中,lang:python表示执行语言是python,type:install_plugin表示执行功能类型为安装插件,link:https://software.org/plugin/log4j/install.bin表示插件从该网址中下载。
可执行数据3:##Runable{lang:python,type:unintall_plugin,name:log4j,force:true},其中,lang:python表示执行语言是python,type:unintall_plugin表示执行功能类型为卸载插件,name:log4j表示卸载名称为log4j的插件,force:true表示卸载方式为强力卸载。
可执行数据4:##Runable{lang:python,type:print,re:xyz_*},其中,lang:python表示执行语言是python,type:print,re表示执行功能类型为打印当前应用/软件的环境变量,re:xyz_*表示打印以xyz_开头命名的所有变量,若没有re:表示打印所有环境变量。
在上述可执行数据被设计为##Runable{some_json}结构的实施例中,所述执行语言、执行功能类型以及执行动作也均在{some_json}中,并且以代码的形式存在。
具体实施时,如图2所示,所诉步骤S140还包括:响应于所述执行类型为直接执行,所述执行函数执行步骤S202:执行所述执行动作。对于用于安装插件的可执行数据,其在设计时执行动作中通常包括插件的下载地址或下载路径,响应于所述执行类型为安装插件,所述执行函数执行步骤S204:从下载地址或下载路径下载并安装对应的插件。对于用于卸载插件的可执行数据,其在设计时执行动作中通常包括需要卸载的插件的名称,响应于所述执行类型为卸载插件,所述执行函数执行步骤S206:卸载对应名称的插件。对于用于打印的可执行数据,其在设计时执行动作中通常打印的数据的名称,响应于所述执行类型为打印,所述执行函数执行步骤S208:根据所述执行动作打印对应的数据。
若所述执行函数识别到错误的执行类型,或当前环境不支持识别到的执行语言,则发送报错信息。
一种具体的实施例中,还需利用所述执行函数判断所述可执行数据的执行语言是否为所述数据处理软件的主语言,若是,则可直接利用软件内置的字符串执行所述可执行数据的指令参数,若所述可执行数据的执行语言不是所述数据处理软件的主语言,则将所述执行语言转化为主语言后,再利用软件内置的字符串执行所述指令参数。
上述实施例提供的方法能够通过不同的具体实施方法来满足不同的实际需,例如,若需要测试输入至数据处理软件的数据流的流速,在一种具体的实施例中,所述步骤S110包括:
间隔预设的第一时长在所述数据流中插入多个所述可执行数据。
在该实施例中,利用所述执行函数并基于一个或多个所述可执行数据中的指令参数执行所述可执行数据,即可测试所述数据流的流速。一种具体的实施例中,响应于接收任意两个相邻的反馈信号的时间间隔与所述第一时长的差值的绝对值均小于等于偏差阈值,确定所述数据流的流速稳定,其中,所述反馈信号为所述执行函数执行所述可执行数据时产生的,所述时间偏差阈值为根据所述第一时长确定的。具体实施时,所述偏差阈值可以为所述第一时长的10%至20%。
下面提供一种具体的实施过程。若需要测试输入至数据处理软件的数据流的流速,则每间隔第一时长向数据流中插入一个可执行数据,该可执行数据的指令参数包括向一个网站发送测速信号(即上述反馈信号),例如可执行数据##Runable{lang:python,type:execute,code:http.get("http://monitor.com/")},其中lang:python表示执行语言为python,type:execute表示执行功能类型为直接执行,code:http.get("http://monitor.com/")为执行动作,表示向http://monitor.com/这一网站发送测速信号。当软件中的执行函数执行该可执行数据时,该网站则可接收到所述测速信号,若接收到测速信号时间间隔能稳定在第一时长左右,说明数据流的流速是稳定的,且系统也在稳定运行,反之则说明数据流的流速不稳定,系统存在问题。当数据流的流速测试完毕,只需停止向数据流插入可执行数据,同样无需对软件代码做任何更改。
需要说明的是,上述向网站发送测速信号仅为一种实施例,本领域技术人员还可以采用其他能够提示数据流流速的方式,并将其代码写入可执行数据,在不付出创造性劳动的前提下所作的修改均在本申请的保护范围之内,下述实施例同理。
本申请还提供了另一种具体的实施例来测试输入至数据处理软件的数据流的流速,在该实施例中,所述步骤S110包括:
间隔预设的第一数据长度在所述数据流中插入多个所述可执行数据;
在该实施例中,利用所述执行函数并基于多个所述可执行数据中的指令参数执行所述可执行数据,就可测试所述数据流的流速。一种具体的实施例中,响应于接收每两个相邻的反馈信号所间隔的时间的方差小于等于预设的方差阈值,确定所述数据流的流速稳定,其中,所述反馈信号为所述执行函数执行所述可执行数据时产生的,所述方差阈值为根据所述第一数据长度确定的。下面提供一种具体的实施过程。若需要测试输入至数据处理软件的数据流的流速,则每隔第一数据长度的数据向数据流中插入一个可执行数据(该可执行数据参考上述实施例中用来测速的可执行数据,不再赘述),该可执行数据的指令参数包括向一个网站发送测速信号(即上述反馈信号)。当软件中的执行函数执行该可执行数据时,该网站则可接收到所述测速信号,网站接收到测试信号的时间间隔即为软件处理第一数据长度的数据的耗时,并且,若接收到测速信号时间间隔相差不多,即方差较小,说明数据流的流速是稳定的,且系统也在稳定运行,反之则说明数据流的流速不稳定,系统存在问题。具体实施时,所述第一数据长度可以为数据的个数。
若需要更改数据处理软件在处理数据时的参数,在一种具体的实施例中,所述步骤S110包括:
在所述数据流的目标位置处插入所述可执行数据,其中,所述可执行数据的指令参数用于改变所述数据流中数据的处理参数。一种具体的实施例中,所述可执行数据的指令参数用于改变所述数据处理软件的处理参数。
在该实施例中,利用所述执行函数并基于多个所述可执行数据中的指令参数执行所述可执行数据,即可改变所述数据流中所述目标位置后的数据的处理参数。
在利用数据处理软件处理数据流时,会遇到需要根据数据处理情况来对应修改软件的处理参数的情况,对于这种修改,很难在软件设计时就做出预知,必定要设计停止软件进程再进行处理参数修改的过程,而本申请上述实施例则能够解决这个问题。如果对目前数据处理结果不满意,直接插入可执行数据,使软件更改处理参数即可,无需停止软件进程以及重新修改/编译软件的代码,也不会增加软件代码的体积,而且还可以通过再次插入另一条可执行数据,将参数恢复原先的设置,进一步提升了工作效率。
下面提供一种具体的实施过程。数据处理软件中包括一个机器学习模型,原始设定为“初始学习率0.8,每隔100万条数据将学习率降至目前学习率的90%”,但当学习模型以0.8的学习率训练到数据流中的第8万条数据时,学习效果不理想,于是需要使学习率在第10万条数据时更改为0.526。在不停止模型学习的前提下,可以在第10万条数据的位置处插入可执行数据##Runabledata{lang:python,type:execute,code:env.learning_rate=0.52,decay_strategy:none},其中lang:python表示执行语言为python,type:execute表示执行功能类型为直接执行,code:env.learning_rate=0.52为执行动作,表示更改学习率为0.526,decay_strategy:none表示删除原始设定,学习率不再下降。当软件中的执行函数在第10万条数据处执行该可执行数据时,立刻将学习率更改为0.526,并删除原始设定,即停止每隔100万条数据将学习率降至目前学习率的90%。本申请还提供了另一种具体的实施例来更改数据处理软件在处理数据时的参数,在该实施例中,所述步骤S110包括:
在所述数据流的目标位置之前插入所述可执行数据,其中,所述可执行数据的指令参数用于在所述数据流的所述目标位置处改变所述数据流中数据的处理参数。一种具体的实施例中,所述可执行数据的指令参数用于在所述数据流的所述目标位置处改变所述数据处理软件的处理参数。
在该实施例中,利用所述执行函数并基于多个所述可执行数据中的指令参数执行所述可执行数据,即可改变所述数据流中所述目标位置后的数据的处理参数。
下面提供一种具体的实施过程。数据处理软件中包括一个机器学习模型,原始设定为“初始学习率0.8,每隔100万条数据将学习率降至目前学习率的90%”,但当学习模型以0.8的学习率训练到数据流中的第8万条数据时,学习效果不理想,于是需要使学习率在第10万条数据时更改为0.526。在不停止模型学习的前提下,可以在软件读取到第8万条数据时立刻插入一条可执行数据##Runabledata{lang:python,type:execute,code:env.learning_rate=0.52,condition:en v.loop.at_least_data_idx=100000,decay_strategy:none},其中lang:python表示执行语言为python,type:execute表示执行功能类型为直接执行,code:env.learning_rate=0.52为执行动作,表示更改学习率为0.526,condition:env.loop.at_least_data_idx=100000表示到第10万条数据时再更改学习率,decay_strategy:none表示删除原始设定,学习率不再下降,该可执行数据的指令参数包括在第10万条数据处更改学习率为0.526,且删除原始设定。当软件中的执行函数在第10万条数据处执行该可执行数据时,立刻将学习率更改为0.526,并删除原始设定,即停止每隔100万条数据将学习率降至目前学习率的90%。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种数据流处理装置,如图3所示,包括:
数据插入模块10,被配置为在待处理的数据流中插入可执行数据。
数据读取模块20,被配置为读取插入了所述可执行数据的所述数据流中的数据。
判断模块30,被配置为利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据。
执行模块40,被配置为响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
应用本申请提供的装置,在利用数据处理软件处理数据流时,只需在软件外设计可执行数据并将其插入数据流,即可使软件执行新的功能,无需停止软件进程以及重新修改和编译软件的代码。并且,由于可执行数据没有直接编写进软件代码中,也不会增加软件代码的体积。
在一些实施例中,所述可执行数据中包括标识符,所述标识符用于表征所述数据流中的数据为所述可执行数据。
在一些实施例中,所述可执行数据的数据类型为预设数据类型;
所述判断模块30还被配置为:
响应于确定所述数据流中的数据的数据类型为所述预设数据类型且确定所述数据流中的数据中包含所述标识符,确定所述所述数据流中的数据为所述可执行数据。
在一些实施例中,所述指令参数至少包括所述可执行数据的执行功能类型,其中,所述执行功能类型包括直接执行、安装插件、卸载插件以及打印环境变量中的一种或多种。
在一种具体的实施例中,所述数据插入模块10还被配置为:
间隔预设的第一时长在所述数据流中插入多个所述可执行数据;
所述执行模块40还被配置为:
利用所述执行函数并基于一个或多个所述可执行数据中的指令参数执行所述可执行数据,以测试所述数据流的流速。
在另一种具体的实施例中,所述数据插入模块10还被配置为:
间隔预设的第一数据长度在所述数据流中插入多个所述可执行数据;
所述执行模块40还被配置为:
利用所述执行函数并基于多个所述可执行数据中的指令参数执行所述可执行数据,以测试所述数据流的流速。
在一种具体的实施例中,所述数据插入模块10还被配置为:
在所述数据流的目标位置处插入所述可执行数据,其中,所述可执行数据的指令参数用于改变所述数据流中数据的处理参数。
所述执行模块40还被配置为:
利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,以改变所述数据流中所述目标位置后的数据的处理参数。
在另一种具体的实施例中,所述数据插入模块10还被配置为:
在所述数据流的目标位置之前插入所述可执行数据,其中,所述可执行数据的指令参数用于在所述数据流的所述目标位置处改变所述数据流中数据的处理参数。
所述执行模块40还被配置为:
利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,以改变所述数据流中所述目标位置后的数据的处理参数。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的数据流处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的数据流处理方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的数据流处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的数据流处理方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的数据流处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种数据流处理方法,其特征在于,包括:
在待处理的数据流中插入可执行数据;
读取插入了所述可执行数据的所述数据流中的数据;
利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;
响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
2.根据权利要求1所述的方法,其特征在于,所述可执行数据中包括标识符,所述标识符用于表征所述数据流中的数据为所述可执行数据。
3.根据权利要求2所述的方法,其特征在于,所述可执行数据的数据类型为预设数据类型;
所述利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据,包括:
响应于确定所述数据流中的数据的数据类型为所述预设数据类型且确定所述数据流中的数据中包含所述标识符,确定所述所述数据流中的数据为所述可执行数据。
4.根据权利要求1所述的方法,其特征在于,所述指令参数至少包括所述可执行数据的执行功能类型,其中,所述执行功能类型包括直接执行、安装插件、卸载插件以及打印环境变量中的一种或多种。
5.根据权利要求1所述的方法,其特征在于,所述在待处理的数据流中插入可执行数据,包括:
间隔预设的第一时长在所述数据流中插入多个所述可执行数据;
所述利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,包括:
利用所述执行函数并基于一个或多个所述可执行数据中的指令参数执行所述可执行数据,以测试所述数据流的流速。
6.根据权利要求1所述的方法,其特征在于,所述在待处理的数据流中插入可执行数据,包括:
间隔预设的第一数据长度在所述数据流中插入多个所述可执行数据;
所述利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,包括:
利用所述执行函数并基于多个所述可执行数据中的指令参数执行所述可执行数据,以测试所述数据流的流速。
7.根据权利要求1所述的方法,其特征在于,所述在待处理的数据流中插入可执行数据,包括:
在所述数据流的目标位置处插入所述可执行数据,其中,所述可执行数据的指令参数用于改变所述数据流中数据的处理参数;
所述利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,包括:
利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,以改变所述数据流中所述目标位置后的数据的处理参数。
8.根据权利要求1所述的方法,其特征在于,所述在待处理的数据流中插入可执行数据,包括:
在所述数据流的目标位置之前插入所述可执行数据,其中,所述可执行数据的指令参数用于在所述数据流的所述目标位置处改变所述数据流中数据的处理参数;
所述利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,包括:
利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据,以改变所述数据流中所述目标位置后的数据的处理参数。
9.一种数据流处理装置,其特征在于,包括:
数据插入模块,被配置为在待处理的数据流中插入可执行数据;
数据读取模块,被配置为读取插入了所述可执行数据的所述数据流中的数据;
判断模块,被配置为利用预先构建的执行函数判断读取到的所述数据流中的数据是否为所述可执行数据;
执行模块,被配置为响应于读取到的所述数据流中的数据为所述可执行数据,利用所述执行函数并基于所述可执行数据中的指令参数执行所述可执行数据。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211592251.4A CN116009980A (zh) | 2022-12-07 | 2022-12-07 | 数据流处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211592251.4A CN116009980A (zh) | 2022-12-07 | 2022-12-07 | 数据流处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116009980A true CN116009980A (zh) | 2023-04-25 |
Family
ID=86032606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211592251.4A Pending CN116009980A (zh) | 2022-12-07 | 2022-12-07 | 数据流处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116009980A (zh) |
-
2022
- 2022-12-07 CN CN202211592251.4A patent/CN116009980A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832059B (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN110806868B (zh) | 一种单页面搭建及加载方法 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN110007921B (zh) | 一种代码发布方法及装置 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN109634569B (zh) | 基于注解的流程实现方法、装置、设备及可读存储介质 | |
CN112286144A (zh) | 一种组态方法及系统、计算机可读存储介质 | |
CN104133676A (zh) | 一种基于脚本的功能执行方法和设备 | |
CN107463421B (zh) | 一种静态流程模型的编译执行方法及系统 | |
CN115757100A (zh) | 面向用户界面的自动化测试框架以及方法、设备、介质 | |
CN115686631A (zh) | 一种基于知识基的随机指令生成方法、装置及存储介质 | |
CN114579452A (zh) | 接口影响检测方法及相关设备 | |
CN114115884B (zh) | 一种编程服务的管理方法以及相关装置 | |
CN116028108B (zh) | 一种依赖包安装用时分析方法、装置、设备及存储介质 | |
CN116009980A (zh) | 数据流处理方法、装置、电子设备及计算机可读存储介质 | |
CN116166457A (zh) | 数据处理方法及相关设备 | |
CN108037914B (zh) | 一种安卓原生系统结合js开发的方法及装置 | |
CN113656044B (zh) | 安卓安装包压缩方法、装置、计算机设备及存储介质 | |
CN115509913A (zh) | 软件自动化测试方法、装置、机器可读介质及设备 | |
CN117170634A (zh) | 代码编译方法、装置、存储介质及电子设备 | |
CN115760391A (zh) | 区块链中智能合约更改方法、装置、电子设备及存储介质 | |
CN113778451B (zh) | 文件加载方法、装置、计算机系统和计算机可读存储介质 | |
KR101684454B1 (ko) | 하이브리드 애플리케이션 및 이의 이벤트 처리 방법 | |
CN115480771A (zh) | 用于部署算法的方法及相关设备 | |
CN112953721A (zh) | 一种ipa文件的解析方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |