发布信息

分布式处理引擎任务的实现方法、装置以及电子设备与流程

作者:admin      2022-08-31 16:58:16     305



计算;推算;计数设备的制造及其应用技术1.本发明涉及计算机领域,具体而言,涉及一种分布式处理引擎任务的实现方法、装置以及电子设备。背景技术:2.apache flink是一个在无界和有界数据流上进行状态计算的框架和分布式处理引擎。flink已经可以在所有常见的集群环境中运行,并以in-memory(存储引擎)的速度和任意的规模进行计算。但在实际使用过程中,还是存在一些工程结构上的问题,如用yarn(资源管理器)部署的flink任务,只能通过yarn api(接口)来控制任务的启停,没有一个比较好的可视化界面,方便运维人员或者非技术人员维护;不同的flink任务,都需要初始化flink的运行环境,造成不同的业务代码重复,而且不同的业务需要维护一部分公用的规则,无法动态提供参数配置。技术实现要素:3.本发明实施例提供了一种分布式处理引擎任务的实现方法、装置以及电子设备,以至少解决引擎任务无法统一规则开发,无法一键控制任务启停,无法动态提供参数配置的技术问题。4.根据本发明实施例的一个方面,提供了一种分布式处理引擎任务的实现方法,包括:获取第一引擎任务和通用数据包;根据上述通用数据包生成上述第一引擎任务对应的目标数据包;通过可视化界面为上述目标数据包配置目标参数;根据上述目标参数生成目标启动脚本;在上述可视化界面上的启停按键被点击的情况下,启动上述目标启动脚本,运行上述第一引擎任务。5.根据本发明实施例的另一方面,提供了一种分布式处理引擎任务的实现装置,包括:第一获取模块,用于获取第一引擎任务和通用数据包;第一生成模块,用于根据上述通用数据包生成上述第一引擎任务对应的目标数据包;配置模块,用于通过可视化界面为上述目标数据包配置目标参数;第二生成模块,用于根据上述目标参数生成目标启动脚本;启动模块,用于在上述可视化界面上的启停按键被点击的情况下,启动上述目标启动脚本,运行上述第一引擎任务。6.作为一种可选的示例,上述第一获取模块包括:第一获取单元,用于获取模板脚本;第一生成单元,用于根据上述模板脚本生成上述通用数据包。7.作为一种可选的示例,上述第一生成模块包括:第二获取单元,用于获取上述第一引擎任务的规则数据包和参数数据包;第二生成单元,用于根据上述通用数据包,上述规则数据包以及上述参数数据包生成上述目标数据包。8.作为一种可选的示例,上述启动模块包括:调用单元,用于调用上述第一引擎任务对应的心跳接口;第三获取单元,用于通过上述心跳接口获取上述第一引擎任务的任务状态;更新单元,用于将上述任务状态更新至上述可视化界面。9.作为一种可选的示例,上述装置还包括:第二获取模块,用于获取第二引擎任务;第三获取模块,用于在数据库中存在上述第二引擎任务的情况下,获取上述第二引擎任务的第一数据包和原始数据包;替换模块,用于将上述第一数据包替换上述原始数据包。10.作为一种可选的示例,上述装置还包括:第四获取模块,用于在上述数据库中不存在上述第二引擎任务的情况下,获取上述第二引擎任务的上述第一数据包;保存模块,用于将上述第二引擎任务和上述第一数据包保存至上述数据库。11.作为一种可选的示例,上述装置还包括:处理模块,用于在上述可视化界面上的启停按键被点击的情况下,暂停运行上述第一引擎任务。12.根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述分布式处理引擎任务的实现方法。13.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的分布式处理引擎任务的实现方法。14.在本技术的上述分布式处理引擎任务的实现方法可用于数据能力的数据清洗的过程中,在本发明实施例中,采用了获取第一引擎任务和通用数据包;根据上述通用数据包生成上述第一引擎任务对应的目标数据包;通过可视化界面为上述目标数据包配置目标参数;根据上述目标参数生成目标启动脚本;在上述可视化界面上的启停按键被点击的情况下,启动上述目标启动脚本,运行上述第一引擎任务的方法,由于在上述方法中,通过通用数据包生成目标数据包,通过可视化界面配置目标参数,生成目标启动脚本,从而实现了统一规则开发,可视化界面任务一键启停,动态配置参数的目的,进而解决了引擎任务无法统一规则开发,无法一键控制任务启停,无法动态提供参数配置的技术问题。附图说明15.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:16.图1是根据本发明实施例的一种可选的分布式处理引擎任务的实现方法的流程图;17.图2是根据本发明实施例的一种可选的分布式处理引擎任务的实现方法的更新流程图;18.图3是根据本发明实施例的一种可选的分布式处理引擎任务的实现装置的结构示意图;19.图4是根据本发明实施例的一种可选的电子设备的示意图。具体实施方式20.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。21.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。22.根据本发明实施例的第一方面,提供了一种分布式处理引擎任务的实现方法,可选地,如图1所示,上述方法包括:23.s102,获取第一引擎任务和通用数据包;24.s104,根据通用数据包生成第一引擎任务对应的目标数据包;25.s106,通过可视化界面为目标数据包配置目标参数;26.s108,根据目标参数生成目标启动脚本;27.s110,在可视化界面上的启停按键被点击的情况下,启动目标启动脚本,运行第一引擎任务。28.可选地,本实施例中,引擎任务为fl ink任务,是一个在无界和有界数据流上进行状态计算的框架和分布式处理引擎。通用数据包为一个jar文件,拥有自己的逻辑和规则。可视化用户界面简称gui,也是指图形用户界面,是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。可视化界面上可以显示多个引擎任务对应的启停按钮,用于一键启停,还用于显示对应引擎任务的任务状态。启动脚本,脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行,启动脚本就是要运行软件的可执行文件。29.可选地,本实施例中,获取第一引擎任务和通用数据包,业务开发人员依据第一引擎任务和通用数据包开发对应的逻辑和规则,打包生成对应的目标数据包,将目标数据包上传至可视化界面,通过可视化界面生成第一引擎任务对应的启停按钮,并为目标数据包配置目标参数,根据目标参数生成第一引擎任务对应的目标启动脚本,用户在可视化界面点击启停按键时,对应的第一引擎任务启动启动脚本,开始运行第一引擎任务。30.可选地,本实施例中,通过通用数据包生成目标数据包,通过可视化界面配置目标参数,生成目标启动脚本,从而实现了统一规则开发,可视化界面任务一键启停,动态配置参数的目的,进而解决了引擎任务无法统一规则开发,无法一键控制任务启停,无法动态提供参数配置的技术问题。31.作为一种可选的示例,获取第一引擎任务和通用数据包包括:32.获取模板脚本;33.根据模板脚本生成通用数据包。34.可选地,本实施例中,模板脚本包括第一引擎任务的所需的资源(内存、中央处理器)的关键,由可视化界面配置、规则算子地址、业务算子的参数接口地址、心跳地址。当第一次执行引擎任务时,根据模板脚本生成通用数据包,往后执行的引擎任务直接使用此通用数据包。35.作为一种可选的示例,根据通用数据包生成第一引擎任务对应的目标数据包包括:36.获取第一引擎任务的规则数据包和参数数据包;37.根据通用数据包,规则数据包以及参数数据包生成目标数据包。38.可选地,本实施例中,获取第一引擎任务的规则数据包和参数数据包,将规则数据包和参数数据包以及通用数据包打包成目标数据包。39.作为一种可选的示例,启动目标启动脚本,运行引擎任务包括:40.调用第一引擎任务对应的心跳接口;41.通过心跳接口获取第一引擎任务的任务状态;42.将任务状态更新至可视化界面。43.可选地,本实施例中,在启动脚本启动后,通过可视化界面调用对应的心跳接口,通过心跳接口获取第一引擎任务的任务状态,任务状态可以为运行中,运行结束等状态,并将任务状态实时更新至可视化界面。使用户一目了然第一引擎任务的运行状态。44.作为一种可选的示例,方法还包括:45.获取第二引擎任务;46.在数据库中存在第二引擎任务的情况下,获取第二引擎任务的第一数据包和原始数据包;47.将第一数据包替换原始数据包。48.可选地,本实施例中,可视化界面可以同时运行多个引擎任务,当收到第二引擎任务时,获取第二引擎任务,在数据库中查找存在第二引擎任务,若存在,获取第二引擎任务的第一数据包和原始数据包,原始数据包为数据库中的第二引擎任务的数据包,将第一数据包替换原始数据包,以更新数据库中第二引擎任务的数据。49.作为一种可选的示例,方法还包括:50.在数据库中不存在第二引擎任务的情况下,获取第二引擎任务的第一数据包;51.将第二引擎任务和第一数据包保存至数据库。52.可选地,本实施例中,数据库中不存在第二引擎任务的情况下,获取第二引擎任务的第一数据包,并保存至数据库,以更新数据库中的数据。53.作为一种可选的示例,方法还包括:54.在可视化界面上的启停按键被点击的情况下,暂停运行第一引擎任务。55.可选地,本实施例中,第一引擎任务在运行的状态下,用户点击可视化界面上对应的启停按键时,第一引擎任务暂停运行,第一引擎任务在未运行的状态下,点击可视化界面上对应的启停按键时,第一引擎任务开始运行,第一引擎任务在暂停运行的状态下,点击可视化界面上的启停按键时,第一引擎任务继续运行。56.可选地,结合一种示例进行说明,本技术涉及一种分布式处理引擎任务的实现方法通过通用数据包生成目标数据包,通过可视化界面配置目标参数,生成目标启动脚本,从而实现了统一规则开发,可视化界面任务一键启停,动态配置参数的目的,整体实现流程:57.1.业务开发人员将第一引擎任务依据通用数据包暴露的接口开发自己的业务逻辑及规则,并打包成目标数据包,通过可视化界面上传到后台,并且在可视化界面配置好参数,在可视化界面点击启动;58.2.后台依据第一步的参数生成该算子的启动脚本,并像资源管理器提交任务。资源管理器运行任务,调用心跳接口,更新可视化界面的任务状态;59.3、以web页面作为可视化界面,可视化界面主要提供以下几方面的功能:第一引擎任务启停可视化、第一引擎任务目标数据包上传、第一引擎任务参数数据包、规则数据包上传;60.4、当引擎任务第一次执行的时候,会依据模版脚本生成对应算子任务的通用数据包,以后执行复用之前生成的通用数据包,通用数据包提供规则数据包、算子依赖的引擎任务运行环境的数据。有一个参数模版,这个模版包含,引擎任务所需的资源(内存、中央处理器)的关键,由可视化界面配置、规则算子地址、业务算子的参数接口地址、心跳地址;61.5.在可视化界面点击第一引擎任务对应的启停按键;62.6.通用数据包调用业务算子的接口,获取第一引擎任务的目标数据包;63.7.application master会将目标数据包广播出去;64.8.kafka source收目标数据包并进行初始化;65.9.根据第一引擎任务的参数将目标数据包输出到不同的业务数据。66.可视化界面可以同时运行多个引擎任务,当收到第二引擎任务时,获取第二引擎任务,在数据库中查找存在第二引擎任务,若存在,获取第二引擎任务的第一数据包和原始数据包,原始数据包为数据库中的第二引擎任务的数据包,将第一数据包替换原始数据包,以更新数据库中第二引擎任务的数据。若不存在,将第一数据包保存在数据库。如图2所示。67.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。68.根据本技术实施例的另一方面,还提供了一种分布式处理引擎任务的实现装置,如图3所示,包括:69.第一获取模块302,用于获取第一引擎任务和通用数据包;70.第一生成模块304,用于根据通用数据包生成第一引擎任务对应的目标数据包;71.配置模块306,用于通过可视化界面为目标数据包配置目标参数;72.第二生成模块308,用于根据目标参数生成目标启动脚本;73.启动模块310,用于在可视化界面上的启停按键被点击的情况下,启动目标启动脚本,运行第一引擎任务。74.可选地,本实施例中,引擎任务为flink任务,是一个在无界和有界数据流上进行状态计算的框架和分布式处理引擎。通用数据包为一个jar文件,拥有自己的逻辑和规则。可视化用户界面简称gui,也是指图形用户界面,是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。可视化界面上可以显示多个引擎任务对应的启停按钮,用于一键启停,还用于显示对应引擎任务的任务状态。启动脚本,脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行,启动脚本就是要运行软件的可执行文件。75.可选地,本实施例中,获取第一引擎任务和通用数据包,业务开发人员依据第一引擎任务和通用数据包开发对应的逻辑和规则,打包生成对应的目标数据包,将目标数据包上传至可视化界面,通过可视化界面生成第一引擎任务对应的启停按钮,并为目标数据包配置目标参数,根据目标参数生成第一引擎任务对应的目标启动脚本,用户在可视化界面点击启停按键时,对应的第一引擎任务启动启动脚本,开始运行第一引擎任务。76.可选地,本实施例中,通过通用数据包生成目标数据包,通过可视化界面配置目标参数,生成目标启动脚本,从而实现了统一规则开发,可视化界面任务一键启停,动态配置参数的目的,进而解决了引擎任务无法统一规则开发,无法一键控制任务启停,无法动态提供参数配置的技术问题。77.作为一种可选的示例,第一获取模块包括:78.第一获取单元,用于获取模板脚本;79.第一生成单元,用于根据模板脚本生成通用数据包。80.可选地,本实施例中,模板脚本包括第一引擎任务的所需的资源(内存、中央处理器)的关键,由可视化界面配置、规则算子地址、业务算子的参数接口地址、心跳地址。当第一次执行引擎任务时,根据模板脚本生成通用数据包,往后执行的引擎任务直接使用此通用数据包。81.作为一种可选的示例,第一生成模块包括:82.第二获取单元,用于获取第一引擎任务的规则数据包和参数数据包;83.第二生成单元,用于根据通用数据包,规则数据包以及参数数据包生成目标数据包。84.可选地,本实施例中,获取第一引擎任务的规则数据包和参数数据包,将规则数据包和参数数据包以及通用数据包打包成目标数据包。85.作为一种可选的示例,启动模块包括:86.调用单元,用于调用第一引擎任务对应的心跳接口;87.第三获取单元,用于通过心跳接口获取第一引擎任务的任务状态;88.更新单元,用于将任务状态更新至可视化界面。89.可选地,本实施例中,在启动脚本启动后,通过可视化界面调用对应的心跳接口,通过心跳接口获取第一引擎任务的任务状态,任务状态可以为运行中,运行结束等状态,并将任务状态实时更新至可视化界面。使用户一目了然第一引擎任务的运行状态。90.作为一种可选的示例,上述装置还包括:91.第二获取模块,用于获取第二引擎任务;92.第三获取模块,用于在数据库中存在第二引擎任务的情况下,获取第二引擎任务的第一数据包和原始数据包;93.替换模块,用于将第一数据包替换原始数据包。94.可选地,本实施例中,可视化界面可以同时运行多个引擎任务,当收到第二引擎任务时,获取第二引擎任务,在数据库中查找存在第二引擎任务,若存在,获取第二引擎任务的第一数据包和原始数据包,原始数据包为数据库中的第二引擎任务的数据包,将第一数据包替换原始数据包,以更新数据库中第二引擎任务的数据。95.作为一种可选的示例,上述装置还包括:96.第四获取模块,用于在数据库中不存在第二引擎任务的情况下,获取第二引擎任务的第一数据包;97.保存模块,用于将第二引擎任务和第一数据包保存至数据库。98.可选地,本实施例中,数据库中不存在第二引擎任务的情况下,获取第二引擎任务的第一数据包,并保存至数据库,以更新数据库中的数据。99.作为一种可选的示例,上述装置还包括:100.处理模块,用于在可视化界面上的启停按键被点击的情况下,暂停运行第一引擎任务。101.可选地,本实施例中,第一引擎任务在运行的状态下,用户点击可视化界面上对应的启停按键时,第一引擎任务暂停运行,第一引擎任务在未运行的状态下,点击可视化界面上对应的启停按键时,第一引擎任务开始运行,第一引擎任务在暂停运行的状态下,点击可视化界面上的启停按键时,第一引擎任务继续运行。102.本实施例的其他示例请参见上述示例,在此不在赘述。103.图4是根据本技术实施例的一种可选的电子设备的结构框图,如图4所示,包括处理器402、通信接口404、存储器406和通信总线408,其中,处理器402、通信接口404和存储器406通过通信总线408完成相互间的通信,其中,104.存储器406,用于存储计算机程序;105.处理器402,用于执行存储器406上所存放的计算机程序时,实现如下步骤:106.获取第一引擎任务和通用数据包;107.根据通用数据包生成第一引擎任务对应的目标数据包;108.通过可视化界面为目标数据包配置目标参数;109.根据目标参数生成目标启动脚本;110.在可视化界面上的启停按键被点击的情况下,启动目标启动脚本,运行第一引擎任务。111.可选地,在本实施例中,上述的通信总线可以是pci(peripheral component interconnect,外设部件互连标准)总线、或eisa(extended industry standard architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。112.存储器可以包括ram,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。113.作为一种示例,上述存储器406中可以但不限于包括上述分布式处理引擎任务的实现装置中的第一获取模块302、第一生成模块304、配置模块306、第二生成模块308以及启动模块310。此外,还可以包括但不限于上述请求的处理装置中的其他模块单元,本示例中不再赘述。114.上述处理器可以是通用处理器,可以包含但不限于:cpu(central processing unit,中央处理器)、np(network processor,网络处理器)等;还可以是dsp(digital signal processing,数字信号处理器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。115.可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。116.本领域普通技术人员可以理解,图4所示的结构仅为示意,实施上述分布式处理引擎任务的实现方法的设备可以是终端设备,该终端设备可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图4其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示的不同的配置。117.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、rom、ram、磁盘或光盘等。118.根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述分布式处理引擎任务的实现方法中的步骤。119.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。120.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。121.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。122.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。123.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。124.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。125.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。126.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部