CN112099858A - 系统数据处理逻辑更新方法、装置和数据处理系统 - Google Patents
系统数据处理逻辑更新方法、装置和数据处理系统 Download PDFInfo
- Publication number
- CN112099858A CN112099858A CN202010929711.2A CN202010929711A CN112099858A CN 112099858 A CN112099858 A CN 112099858A CN 202010929711 A CN202010929711 A CN 202010929711A CN 112099858 A CN112099858 A CN 112099858A
- Authority
- CN
- China
- Prior art keywords
- data processing
- configuration
- plug
- updating
- configuration file
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 200
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000009471 action Effects 0.000 claims abstract description 68
- 238000012544 monitoring process Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims description 10
- 230000007958 sleep Effects 0.000 claims description 10
- 230000004617 sleep duration Effects 0.000 claims description 4
- 230000002618 waking effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000006837 decompression Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 230000004048 modification Effects 0.000 description 16
- 238000012986 modification Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000019129 pluma Nutrition 0.000 description 1
- 244000291751 pluma del Caribe Species 0.000 description 1
- 235000019070 pluma del Caribe Nutrition 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种系统数据处理逻辑更新方法、装置、数据处理系统和存储介质。方法包括:当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到,确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项,基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新,使得系统在不需要人为重启的干预,只需要修改配置文件就可以做到系统数据处理逻辑的便捷更新,实现了系统“热插拔”,提高系统更新的自动化。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种系统数据处理逻辑更新方法、装置、数据处理系统和存储介质。
背景技术
随着人工智能平台技术的发展,越来越多的人工智能平台的数据处理系统能够支持用户的个性化需求。在实现用户的个性化需求的过程中,通过获取用户的个性化的配置数据,来实现对系统的个性化配置,基于这种处理方式,能够满足大部分用户的需求。
然而,目前的基于配置数据进行系统的个性化配置的方式,当用户需求更新时,需要人为停止系统运行、通过更新配置数据实现系统的数据处理逻辑的更新、再人为启动运行来得到更新系统,当用户需要对系统的某项功能进行更新时,仅通过配置数据的更新难以满足,一般需要通过重新编写系统的功能代码进行替换,需要编写的代码量巨大,从而影响系统的更新效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够简化更新过程的系统数据处理逻辑更新方法、装置、数据处理系统和存储介质。
一种系统数据处理逻辑更新方法,方法包括:
当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项;
基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
一种系统数据处理逻辑更新装置,装置包括:
更新配置项识别模块,用于当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
动作确定模块,用于确定更新的系统配置文件中的更新配置项以及更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项;
更新模块,用于基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
一种数据处理系统,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项;
基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项;
基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
上述系统数据处理逻辑更新方法、装置、数据处理系统和存储介质,当系统配置文件更新时,确定更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑;通过将系统主框架与插件分离,通过响应系统启动操作读取系统配置文件,将系统配置文件中的配置参数和配置插件加载至系统主框架,得到系统主框架的数据处理逻辑,用插件加载的方式,将插件中的数据处理逻辑加载至主框架中,利用插件实现用户对功能的个性化需求,得到系统主框架的数据处理逻辑;通过确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项,以使系统只需要根据更新内容实现局部的更新,避免对其他未更新部分的修改,通过基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新,使得系统在不需要人为重启的干预,只需要修改配置文件就可以做到系统数据处理逻辑的便捷更新,实现了系统“热插拔”,提高系统更新的自动化。
附图说明
图1为一个实施例中系统数据处理逻辑更新方法的应用环境图;
图2为一个实施例中系统数据处理逻辑更新方法的流程示意图;
图3为另一个实施例中系统数据处理逻辑更新方法的流程示意图;
图4为一个实施例中数据处理系统的结构示意图;
图5为再一个实施例中系统数据处理逻辑更新方法的流程示意图;
图6为一个实施例中数据处理系统的帧率控制的循环队列示意图;
图7为一个实施例中数据处理系统的示意图;
图8为还一个实施例中系统数据处理逻辑更新方法的流程示意图;
图9为一个实施例中系统数据处理逻辑更新装置的结构框图;
图10为一个实施例中数据处理系统的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的系统数据处理逻辑更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。用户通过终端102对系统配置文件进行参数和插件配置,并将系统配置文件上传至服务器104,服务器104读取系统配置文件,将系统配置文件中的配置参数和配置插件加载至系统主框架,得到系统主框架的数据处理逻辑。服务器104监听检测系统配置文件的状态,当监听到用户通过终端102对系统配置文件进行更新操作即监听到系统配置文件更新时,确定更新的系统配置文件中的更新配置项以及更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项,基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种系统数据处理逻辑更新方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤202至步骤208。
步骤202,当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑。
系统配置文件是指数据处理系统的配置文件,数据处理系统是指用于对给定数据进行数据处理的系统。给定数据可以是音频数据、视频数据等。以视频数据为例,该数据处理系统可以为视频流处理系统,视频流处理系统适用于需要对视频进行计算、处理的业务场景。如虚拟现实(VR)场景,通过相机采集实时场景画面,经过视频流处理系统处理得到一帧帧视频,再经过VR技术计算反馈给用户。再比如视频内容审核,读入待审核的视频文件,经过视频流处理系统处理得到一帧帧视频,再经过审核算法计算处理,最终判定该视频内容是否符合要求。
系统配置文件中包括配置参数和配置插件,配置参数是用于对数据处理流程的条件等信息进行限定的数据。例如视频流的输出帧率等。配置插件是用于对数据处理过程中的功能模块进行限定的数据,例如解码、转码等功能。
系统配置文件更新是指用户通过终端对系统配置文件中的部分或全部进行修改,并将修改结果上传至服务器的过程。服务器在监听到系统配置文件更新时,首先确定更新的配置文件中发生了更新的更新配置项。其中,不同的配置项的修改对应不同的响应动作。
具体来说,当更新配置项的修改为参数变更时,对应的响应动作为修改参数。当更新配置项的修改为插件变更时,对应的响应动作为重载插件。当更新配置项的修改为配置文件变更需要系统重启时,对应的响应动作为重启系统。
数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到。
系统主框架是指抽象了整个数据处理流程的主要流水线的数据处理框架,流水线包括多种功能,因此,通过系统主框架可以实现多功能的集成,例如,视频流处理过程中的采集->解码->转码->过滤帧->保存帧->控制帧率->输出帧等。基于系统主框架和插件,引入“插件式”设计,允许插件覆盖系统主框架已有的功能,也允许插件中新增系统主框架没有的功能,可以极大减少插件的代码量,使得每个插件只需要关心自身平台特性和具体业务特性的功能实现即可。
通过将系统配置文件中的配置参数和配置插件加载至系统主框架,得到系统主框架的数据处理逻辑,数据处理逻辑是指包括各个功能的具体实现方式的数据处理流程。例如,系统主框架中包括控制帧率的数据处理流程,通过配置参数中的帧率数据,将系统主框架中的初始数据更新为配置参数中的帧率数据,得到控制帧率的数据处理流程的数据处理逻辑。再例如,系统主框架中包括解码的数据处理流程,配置插件中根据其业务需求,对解码的数据处理流程进行了个性化设计,则通过将配置插件加载至系统主框架的过程中,实现对系统主框架原有的解码流程进行覆盖,得到解码的数据处理流程的数据处理逻辑。
步骤206,确定更新配置项对应的预设动作。
预设动作包括参数更新、插件重载以及重启系统中的任意一项。其中,参数更新是指对系统主框架的数据处理逻辑中的参数进行更新。插件重载是指对系统主框架中的某个数据处理流程对应的插件的重新加载,重启系统是指退出数据处理系统的数据处理逻辑的主线程并重新读取系统配置文件,将系统配置文件中的配置参数和配置插件加载至系统主框架的过程。
步骤206,基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
更新配置项中包括更新的具体内容,通过执行更新配置项对应的预设动作,可以在不影响其他流程的前提下,实现该更新配置项在主框架中对应的流程更新,从而实现“热插拔”,即在不需要重启系统、程序的情况下做到子组件、子模块、插件或者参数的更新。
上述系统数据处理逻辑更新方法,当系统配置文件更新时,确定更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑;通过将系统主框架与插件分离,通过响应系统启动操作读取系统配置文件,将系统配置文件中的配置参数和配置插件加载至系统主框架,得到系统主框架的数据处理逻辑,用插件加载的方式,将插件中的数据处理逻辑加载至主框架中,利用插件实现用户对功能的个性化需求,得到系统主框架的数据处理逻辑;通过确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项,以使系统只需要根据更新内容实现局部的更新,避免对其他未更新部分的修改,通过基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新,使得系统在不需要人为重启的干预,只需要修改配置文件就可以做到系统数据处理逻辑的便捷更新,实现了系统“热插拔”,提高系统更新的自动化。
在其中一个实施例中,当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,即步骤202之前,包括步骤302至步骤310。
步骤302,响应系统启动操作,读取系统配置文件。
步骤304,将系统配置文件中的配置参数加载至系统主框架,并调用插件管理服务获取配置插件中的数据。
步骤306,根据配置插件的插件类型,确定配置插件在系统主框架中对应的初始插件。
步骤308,将配置插件的数据更新至初始插件,得到更新插件。
步骤310,根据系统主框架中加载的配置参数和更新插件,得到系统主框架的数据处理逻辑。
在实施例中,如图4所示,数据处理系统基于开源的Pluma插件管理器进行开发,除了主框架和插件之外,还有插件管理服务。其中,插件类的实现,是基于接口实现、父子类继承或者反射机制,由插件遵守约定的接口,由插件管理服务在运行时发现和加载插件实现的。继承是面向对象软件技术当中的一个概念,继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。反射机制是指程序可以访问、检测和修改它本身状态或行为的一种能力。
具体来说,插件管理服务根据配置文件中配置插件对应的插件名称和插件库所在位置,加载配置插件。根据配置文件中配置插件的插件类型,确定在系统主框架中对应的初始插件,并由初始插件继承插件管理服务加载的配置插件或是通过反射机制通过初始插件实现配置插件的功能。先通过插件管理服务加载配置插件,再通过系统主框架中的初始插件继承该配置插件,可以避免数据处理系统会报错退出。通过父子类继承或反射机制,在数据处理系统实际运行时,若某项功能在配置插件中存在,则会运行配置插件中的逻辑而忽略系统主框架的原有逻辑,实现逻辑的重写或覆盖。
在实施例中,数据处理系统通过热更新配置的方式来实现对数据处理逻辑的更新。具体来说,热更新配置是指数据处理系统实时监控配置文件,一旦发现文件内容被修改了,则马上根据修改的内容作出响应,而不是修改了配置后,还要重启系统才能被响应。
在一个实施例中,方法还包括获取系统配置文件最新的更新时间,将最新的更新时间与上一次获取的更新时间进行比较,根据比较结果判断系统配置文件是否更新。
相较于直接检测文件内容是否发生变化,而是向系数据处理统获取配置文件的更新时间来判断内容是否被修改,若被修改再进行下一步判断,能够极大提升性能,减少读取配置文件内容的开销,减少系统IO读写负担。
在一个实施例中,方法还包括:
创建系统配置文件监听线程,由系统配置文件监听线程轮询获取系统配置文件的更新时间;当更新时间与上一次轮询获取的更新时间的时间间隔不大于轮询的时间间隔时,得到系统配置文件更新的监听结果。
确定更新配置项对应的预设动作之后,还包括:
将系统配置文件监听线程由执行状态转入睡眠状态;当处于睡眠状态的睡眠时长达到轮询的时间间隔时,唤醒系统配置文件监听线程进入下一次轮询。
配置文件监听线程用于对配置文件的更新状态进行监听。在实施例中,通过创建系统配置文件监听线程,并不是直接检测文件内容是否发生变化,而是向系数据处理统获取配置文件的更新时间来判断内容是否被修改,若被修改再进行下一步判断,能够极大提升性能,减少读取配置文件内容的开销,减少系统IO读写负担。
轮询是一种CPU决策如何提供周边设备服务的方式,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。在一个实施例中,系统配置文件监听线程按照预先设定的轮询的时间间隔,以轮询的方式向系数据处理统获取配置文件的更新时间。例如,轮询的时间间隔可以是1s,系统配置文件监听线程以间隔时间为1s的方式获取到系统配置文件的更新时间。
通过系统配置文件监听线程获取到系统配置文件最新的更新时间,比较得到最新的更新时间与上一次轮询获取的更新时间的时间间隔,若时间间隔小于或等于轮询的时间间隔,则表征在该次轮询过程中,用户对系统配置文件进行了更新操作并需要响应该次更新操作。
在其中一个实施例中,以系统配置文件监听线程的轮询间隔时间为1s为例。在系统启动后创建一个线程Thread_Config监听配置文件,每次轮询时,系统配置文件监听线程执行以下步骤:
第一步,从数据处理系统中读取文件的修改时间。
第二步,和上一次读取的文件修改时间进行比较,如果时间间隔小于或等于1秒,则跳转至第三步。
第三步,读取配置文件的修改内容,如果修改内容对应为需要重新加载插件,则向数据处理系统的数据处理逻辑对应的主线程发送RELOAD_PLUGINS信号,并且跳转至第四步;如果修改内容对应为需要退出程序,则向主线程发送EXIT信号并且退出轮询。
第四步,睡眠1s,然后跳转到第一步,进下一次轮询。
每次轮询时,获取配置文件的更新时间来判断内容是否被修改,能够减少读取配置文件内容的开销,减少系统IO读写负担,极大提升数据处理系统的性能。
在一个实施例中,如图5所示,确定更新配置项对应的预设动作,即步骤204包括步骤502至步骤504。
步骤502,获取更新配置项对应的优先级。
步骤504,根据优先级对应的预设动作,得到更新配置项对应的预设动作。
更新配置项是指用户对配置文件中某一配置项中的部分或是全部配置信息进行更新操作后得到的结果。在实施例中,不同配置项的更新响应具有不同的优先级。例如,视频流数据处理过程中,对输出帧率的更新时,修改的配置项的更新响应的优先级较低,只需要修改视频流数据处理系统中的参数,执行参数修改的动作即可实现。再例如,对编码插件更新时,修改的配置项的更新响应的优先级相对较高,需要重新加载插件实现来实现。再例如,当用户对整个配置文件都进行了更新时,如进行系统配置文件的版本替换等,则需要重启系统来实现。
在一个具体的实施例中,更新配置项对应的优先级包括三级,第一级是参数变更、第二级是插件变更,第三级是文件变更。当更新配置项为参数变更的时候,参数变更对应的优先级最低,对应的预设动作为修改参数。当更新配置项为插件变更的时候,参数变更对应的优先级次低,对应的预设动作为重载插件。当更新配置项为文件变更的时候,参数变更对应的优先级最高,对应的预设动作为重启系统。
在一个实施例中,数据处理系统为视频流处理系统,视频流处理系统的系统主框架的数据处理流程包括视频流处理系统。系统主框架包括视频流获取、视频流解压缩、视频帧格式转换、视频帧过滤、视频帧保存、帧率控制、视频帧输出中的至少一种数据处理流程。
在一个实施例中,视频流处理系统的系统主框架抽象了整个视频流处理的主要流水线:采集视频流(获取流)、解压缩视频流(解码)、转视频帧格式(转码)、根据系统配置文件的配置需求选择丢帧或者保留(过滤帧)、根据系统配置文件的配置需求选择是否保存帧到本地磁盘(保存帧)、根据系统配置文件的配置需求设置帧率(控制帧率)、通过回调API或者共享内存输出帧数据(回调API/送入SHM)
基于系统主框架,能够实现流水线管理整套视频帧处理的流程,还能集成通用多功能的帧处理工具,例如控制帧率和过滤帧等。
具体来说,把视频流的数据处理流程抽象成流水线实现从采集->解码->转码->过滤帧->保存帧->控制帧率->输出帧的流水线的数据处理。把这些流程放在系统主框架,可以极大减少插件的代码量,使得每个插件只需要关心自身平台特性和具体业务特性的功能实现即可,通过插件来实现或者覆盖系统主框架的全部或者部分数据处理逻辑。
在一个实施例中,系统主框架的数据处理流程包括帧率控制。帧率控制的数据处理过程包括:根据配置参数中的输出帧率,确定视频帧的输出间隔时间。根据输出间隔时间,依次从循环队列的队列头取出存入的视频帧数据,循环队列中的视频帧数据从队列尾依次存入。
在一些业务场景中,往往因为后续计算、处理的耗时相对较大,需要在视频流处理之后输出一个更小/慢的帧率;甚至会出现后续计算跟不上,需要视频流处理等待后续计算完成后再继续处理和输出,因此需要通过帧率控制来实现视频流的稳定输出。
在输出帧率控制的实现过程中,首先,视频流处理系统内部维护一个循环队列Circle_Queue,该循环队列专用于存放视频帧数据,具体包括视频帧的元数据(metadata)和帧数据。循环队列允许的操作为队列尾插入视频帧数据、从队列头取出视频帧数据并从循环队列中删除视频帧数据;且当队列满时,插入操作被阻塞;而当队列为空时,取出操作被阻塞。
接着,视频流处理系统分配2个线程分别执行往Circle_Queue插入数据和取出、删除数据操作。具体来说,参照图6,在视频流处理系统在执行抽帧或重采样流程的处理后,由线程1把需要输出的视频帧数据插入Circle_Queue。由线程2按照配置文件中设定的输出帧率对应的间隔时间(比如输出帧率为fps_o,那么间隔时间为1/fps_o*1000毫秒)从循环队列中取出视频帧数据,按照输出要求,将取出的视频帧数据输出到共享内存或者调用回调API。其中,共享内存是一种多进程之间的通信手段。回调函数(回调API)是一种通过调用函数指针来达到调用该函数的机制。
通过引入循环队列Circle_Queue,并分别设计插入和取出2个线程,以达到控制帧率的效果。由于线程2只涉及从队列中取用、删除数据和输出帧数据操作,逻辑简单,将控制帧率放在线程2中,可以确保后续流程中能够得到稳定且符合要求的帧率。在后续流程的计算来不及时,线程2调用API或者输出共享内存被阻塞,因为只有插入数据,没有取出、删除数据,一段时间后会导致Circle_Queue满,进一步使得线程1被阻塞,也使得前置环节(采集、解码、转码、过滤、保存)都被阻塞。需要说明的是,控制帧率只需要在线程2中进行,线程1并不需要做控制帧率。在数据处理流程中的控制帧率以及后续流程,都在线程2中进行。举例来说,采集、解码、转码、过滤帧、保存帧的流程都在线程1中进行,控制帧率和输出帧的流程在线程2中进行。
本申请还提供一种系统数据处理逻辑更新应用于视频流数据处理系统的应用场景。具体地,该系统数据处理逻辑更新方法在该应用场景的应用如下:
视频流数据处理系统能够支持“热插拔”的多功能视频处理,具体来说,参见图7,视频流数据处理系统分为热更新配置、系统主框架和插件三部分。其中,热更新配置负责实时监听视频流数据处理系统的配置文件,一旦发现配置文件被修改了,则做出相应的变动,边用包括修改参数、重载插件、退出或重启系统。主框架抽象了整个视频流处理流程的主要流水线,实现视频的采集、多功能处理和视频帧的输出。例如,流水线包括采集视频流(获取流)、解压缩视频流(解码)、转视频帧格式(转码)、根据配置文件需求选择丢帧或者保留(过滤帧)、根据配置文件需求选择是否保存帧到本地磁盘(保存帧)、根据配置文件需求设置帧率(控制帧率)、通过回调API或者共享内存输出帧数据。基于主框架和插件,实现数据处理流程中部分逻辑的覆盖或增加,使得插件代码只需要关注平台的硬件特性和业务需求特性。
其中,热更新配置是指系统实时监控配置文件,一旦发现配置文件的内容被修改了,则马上根据修改的内容作出响应,无需修改了配置后通过手动重启系统来响应。具体来说,在系统启动后,创建监听线程监听配置文件,轮询的间隔时间为1秒,每次轮询时,从系统中读取文件的修改时间,将本次轮询读取的修改时间与上一次的文件修改时间进行比较,如果时间间隔小于或等于1秒,则读取配置文件的修改内容,如果修改内容为需要重新加载插件,则向主线程发送插件重载信号并且睡眠1秒,进入下一次轮询;如果是需要退出程序,则向主线程发送退出信号并且退出监听线程的轮询。每次轮询时,首先向系统获取配置文件的更新时间来判断内容是否被修改,若是再进行下一步判断,能够极大提升性能,减少读取配置文件内容的开销,减少系统IO读写负担。
主框架有2个优势,第一是通过流水线的方式,管理整套视频帧处理的流程;第二是集成通用多功能的帧处理工具,例如控制帧率和过滤帧。
具体来说,通过把视频流处理抽象成流水线,实现采集->解码->转码->过滤帧->保存帧->控制帧率->输出帧的连续流程。把这些流程放在主框架,可以极大减少插件的代码量,使得每个插件只需要关心自身平台特性和具体业务特性的功能实现即可。
对于控制帧率,首先,系统内部维护一个用于存放帧的元数据和帧数据的循环队列,循环队列允许的操作为队尾插入、队头取出并从队列中删除;且当队列满时,插入操作被阻塞;而队列为空时,取出操作被阻塞。然后,系统分配2个线程分别执行往循环队列数据插入操作以及数据取出并删除操作。在执行抽帧或重采样的处理流程后,由线程1把需要输出的元数据和帧数据插入循环队列;线程2按照输出帧率对应的间隔时间,从队列中获取数据,按照要求输出到共享内存,或者调用回调API。
在一个实施例中,如图8所示,提供了一种系统数据处理逻辑更新方法,包括以下步骤802至步骤820。
步骤802,响应系统启动操作,读取系统配置文件,并创建系统配置文件监听线程。
步骤804,将系统配置文件中的配置参数加载至系统主框架,并调用插件管理服务加载配置插件。
步骤806,根据配置插件的插件类型,确定配置插件在系统主框架中对应的初始插件。
步骤808,将配置插件的数据更新至初始插件,得到更新插件。
步骤810,根据系统主框架中加载的配置参数和更新插件,得到系统主框架的数据处理逻辑。
步骤812,通过系统配置文件监听线程,轮询获取系统配置文件的更新时间,当更新时间与上一次轮询获取的更新时间的时间间隔不大于轮询的时间间隔时,得到系统配置文件更新的监听结果。
步骤814,当系统配置文件更新时,确定系统配置文件中更新配置项。
步骤816,根据更新配置项对应的优先级以及优先级对应的预设动作,得到更新配置项对应的预设动作。
步骤818,基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
步骤820,将系统配置文件监听线程由执行状态转入睡眠状态。
步骤822,当处于睡眠状态的睡眠时长达到轮询的时间间隔时,唤醒系统配置文件监听线程进入下一次轮询。
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种系统数据处理逻辑更新装置900,该装置可以采用软件模块或硬件模块,或者是二者的结合成为数据处理系统的一部分,该装置具体包括:更新配置项识别模块902、动作确定模块904和更新模块906,其中:
更新配置项识别模块902,用于当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到。
动作确定模块904,用于确定更新的系统配置文件中的更新配置项以及更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项。
更新模块906,用于基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新。
在其中一个实施例中,系统数据处理逻辑更新装置还包括配置文件加载模块,用于响应系统启动操作,读取系统配置文件;将系统配置文件中的配置参数加载至系统主框架,并调用插件管理服务获取配置插件中的数据;根据配置插件的插件类型,确定配置插件在系统主框架中对应的初始插件;将配置插件的数据更新至初始插件,得到更新插件;根据系统主框架中加载的配置参数和更新插件,得到系统主框架的数据处理逻辑。
在其中一个实施例中,系统数据处理逻辑更新装置还包括配置文件更新判断模块,用于获取系统配置文件最新的更新时间;将最新的更新时间与上一次获取的更新时间进行比较,根据比较结果判断系统配置文件是否更新。
在其中一个实施例中,系统数据处理逻辑更新装置还包括配置文件动作确定模块,用于创建系统配置文件监听线程,由系统配置文件监听线程轮询获取系统配置文件的更新时间;当更新时间与上一次轮询获取的更新时间的时间间隔不大于轮询的时间间隔时,得到系统配置文件更新的监听结果。将系统配置文件监听线程由执行状态转入睡眠状态。当处于睡眠状态的睡眠时长达到轮询的时间间隔时,唤醒系统配置文件监听线程进入下一次轮询。
在其中一个实施例中,动作确定模块还用于获取更新配置项对应的优先级;根据优先级对应的预设动作,得到更新配置项对应的预设动作。
在其中一个实施例中,系统数据处理逻辑更新装置还包括数据处理模块,用于实现视频流获取、视频流解压缩、视频帧格式转换、视频帧过滤、视频帧保存、帧率控制、视频帧输出中的至少一种数据处理流程
在其中一个实施例中,系统数据处理逻辑更新装置还包括数据处理模块,数据处理模块包括帧率控制单元,用于根据配置参数中的输出帧率,确定视频帧的输出间隔时间;基于从队列尾依次存入视频帧数据的循环队列,根据输出间隔时间,依次从循环队列的队列头取出存入的视频帧数据。
上述系统数据处理逻辑更新装置,当系统配置文件更新时,确定更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑;通过将系统主框架与插件分离,通过响应系统启动操作读取系统配置文件,将系统配置文件中的配置参数和配置插件加载至系统主框架,得到系统主框架的数据处理逻辑,用插件加载的方式,将插件中的数据处理逻辑加载至主框架中,利用插件实现用户对功能的个性化需求,得到系统主框架的数据处理逻辑;通过确定更新配置项对应的预设动作,预设动作包括参数更新、插件重载以及重启系统中的任意一项,以使系统只需要根据更新内容实现局部的更新,避免对其他未更新部分的修改,通过基于更新配置项,执行预设动作,以对系统主框架的数据处理逻辑进行更新,使得系统在不需要人为重启的干预,只需要修改配置文件就可以做到系统数据处理逻辑的便捷更新,实现了系统“热插拔”,提高系统更新的自动化。。
关于系统数据处理逻辑更新装置的具体限定可以参见上文中对于系统数据处理逻辑更新方法的限定,在此不再赘述。上述系统数据处理逻辑更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于数据处理系统中的处理器中,也可以以软件形式存储于数据处理系统中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种数据处理系统,该数据处理系统可以是服务器,其内部结构图可以如图10所示。该数据处理系统包括通过系统总线连接的处理器、存储器和网络接口。其中,该数据处理系统的处理器用于提供计算和控制能力。该数据处理系统的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该数据处理系统的数据库用于存储系统配置数据。该数据处理系统的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种系统数据处理逻辑更新方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的数据处理系统的限定,具体的数据处理系统可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种数据处理系统,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。数据处理系统的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该数据处理系统执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种系统数据处理逻辑更新方法,其特征在于,所述方法包括:
当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,所述数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
确定所述更新配置项对应的预设动作,所述预设动作包括参数更新、插件重载以及重启系统中的任意一项;
基于所述更新配置项,执行所述预设动作,以对所述系统主框架的数据处理逻辑进行更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应系统启动操作,读取系统配置文件;
将所述系统配置文件中的配置参数加载至系统主框架,并调用插件管理服务获取所述配置插件中的数据;
根据所述配置插件的插件类型,确定所述配置插件在所述系统主框架中对应的初始插件;
将所述配置插件的数据更新至所述初始插件,得到更新插件;
根据所述系统主框架中加载的配置参数和所述更新插件,得到所述系统主框架的数据处理逻辑。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取系统配置文件最新的更新时间;
将所述最新的更新时间与上一次获取的更新时间进行比较,根据比较结果判断所述系统配置文件是否更新。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建系统配置文件监听线程,由所述系统配置文件监听线程轮询获取所述系统配置文件的更新时间;
当所述更新时间与上一次轮询获取的更新时间的时间间隔不大于轮询的时间间隔时,得到系统配置文件更新的监听结果;
所述确定所述更新配置项对应的预设动作之后,还包括:
将所述系统配置文件监听线程由执行状态转入睡眠状态;
当处于所述睡眠状态的睡眠时长达到所述轮询的时间间隔时,唤醒所述系统配置文件监听线程进入下一次轮询。
5.根据权利要求1所述的方法,其特征在于,所述确定所述更新配置项对应的预设动作包括:
获取所述更新配置项对应的优先级;
根据所述优先级对应的预设动作,得到所述更新配置项对应的预设动作。
6.根据权利要求1所述的方法,其特征在于,所述系统主框架的数据处理流程包括视频流获取、视频流解压缩、视频帧格式转换、视频帧过滤、视频帧保存、帧率控制、视频帧输出中的至少一种。
7.根据权利要求1所述的方法,其特征在于,所述系统主框架的数据处理流程包括帧率控制;
所述帧率控制的数据处理过程包括:
根据所述配置参数中的输出帧率,确定视频帧的输出间隔时间;
根据所述输出间隔时间,依次从循环队列的队列头取出存入的视频帧数据,所述循环队列中的视频帧数据从队列尾依次存入。
8.一种系统数据处理逻辑更新装置,其特征在于,所述装置包括:
更新配置项识别模块,用于当系统配置文件更新时,识别更新的系统配置文件中的更新配置项并确定系统主框架的数据处理逻辑,所述数据处理逻辑通过响应系统启动操作,将读取的系统配置文件中的配置参数和配置插件加载至系统主框架得到;
动作确定模块,用于确定更新的系统配置文件中的更新配置项以及所述更新配置项对应的预设动作,所述预设动作包括参数更新、插件重载以及重启系统中的任意一项;
更新模块,用于基于所述更新配置项,执行所述预设动作,以对所述系统主框架的数据处理逻辑进行更新。
9.一种数据处理系统,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010929711.2A CN112099858B (zh) | 2020-09-07 | 2020-09-07 | 系统数据处理逻辑更新方法、装置和数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010929711.2A CN112099858B (zh) | 2020-09-07 | 2020-09-07 | 系统数据处理逻辑更新方法、装置和数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112099858A true CN112099858A (zh) | 2020-12-18 |
CN112099858B CN112099858B (zh) | 2024-03-29 |
Family
ID=73750803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010929711.2A Active CN112099858B (zh) | 2020-09-07 | 2020-09-07 | 系统数据处理逻辑更新方法、装置和数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099858B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918293A (zh) * | 2021-10-11 | 2022-01-11 | 福建天泉教育科技有限公司 | 一种任务启动方法及终端 |
CN115150411A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 数据同步的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794033A (en) * | 1995-10-24 | 1998-08-11 | International Business Machines Corporation | Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device |
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的系统及其方法 |
CN102411506A (zh) * | 2011-07-07 | 2012-04-11 | 杭州典能科技有限公司 | Java系统业务单元插件式管理系统及业务功能动态变更方法 |
CN104199666A (zh) * | 2014-09-09 | 2014-12-10 | 北京京东尚科信息技术有限公司 | 一种应用程序动态配置方法及装置 |
CN110908730A (zh) * | 2019-10-31 | 2020-03-24 | 烽火通信科技股份有限公司 | 一种云平台配置文件管理方法及管理系统 |
-
2020
- 2020-09-07 CN CN202010929711.2A patent/CN112099858B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794033A (en) * | 1995-10-24 | 1998-08-11 | International Business Machines Corporation | Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device |
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的系统及其方法 |
CN102411506A (zh) * | 2011-07-07 | 2012-04-11 | 杭州典能科技有限公司 | Java系统业务单元插件式管理系统及业务功能动态变更方法 |
CN104199666A (zh) * | 2014-09-09 | 2014-12-10 | 北京京东尚科信息技术有限公司 | 一种应用程序动态配置方法及装置 |
CN110908730A (zh) * | 2019-10-31 | 2020-03-24 | 烽火通信科技股份有限公司 | 一种云平台配置文件管理方法及管理系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150411A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 数据同步的方法和装置 |
CN113918293A (zh) * | 2021-10-11 | 2022-01-11 | 福建天泉教育科技有限公司 | 一种任务启动方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112099858B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5658283B2 (ja) | アプリケーションの稼働方法、装置及びシステム | |
US20180336060A1 (en) | Method, terminal and storage medium for displaying media files | |
CN108958729B (zh) | 一种数据处理方法、装置及存储介质 | |
US20200174823A1 (en) | State management method and apparatus for virtual machine, and smart terminal thereof | |
CN112099858B (zh) | 系统数据处理逻辑更新方法、装置和数据处理系统 | |
WO2020206691A1 (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN109542744A (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
US20150009364A1 (en) | Management and access of media with media capture device operator perception data | |
CN112799925A (zh) | 数据采集方法、装置、电子设备和可读存储介质 | |
CN111045824A (zh) | 应用控制方法、装置、电子设备以及计算机可读介质 | |
CN112783614A (zh) | 对象处理方法、装置、设备、存储介质以及程序产品 | |
CN116954680A (zh) | 存储系统的插件更新方法、装置、设备、介质及程序产品 | |
CN114675928A (zh) | 容器镜像的构建方法和装置、存储介质及电子装置 | |
CN110574006B (zh) | 用于自动同步设备上响应与条件的系统和方法 | |
CN117812404A (zh) | 一种显示设备及应用启动管理方法 | |
CN114489892B (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN113867831B (zh) | 智能设备控制方法、智能设备、存储介质及电子设备 | |
CN115344371A (zh) | 接口的调用方法及装置、存储介质、计算机设备 | |
CN114860333A (zh) | 一种服务编排方法和电子设备 | |
CN114173179A (zh) | 系统升级任务与视频录制任务的兼容执行方法及显示设备 | |
CN111638914A (zh) | 一种对终端功能的设置方法、设备及存储介质 | |
CN115617421B (zh) | 进程智能调度方法、装置、可读存储介质及嵌入式设备 | |
CN114048177B (zh) | 分享方法及装置、电子设备、存储介质及程序产品 | |
CN111176969B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN117527949B (zh) | 一种云手机运行监控方法、系统、存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |