掌桥专利:专业的专利平台
掌桥专利
首页

一种数据访问方法及装置

文献发布时间:2023-06-19 10:38:35


一种数据访问方法及装置

技术领域

本发明涉及数据处理技术,尤其涉及一种数据访问方法及装置。

背景技术

在物联网领域,特别是工业物联网领域,通过智能物联网平台解决工厂智能化的过程中,平台软件一般有如下几个数据处理步骤:设备数据采集、设备数据传输、设备数据存储、设备数据分析、分析结果反馈给设备。在分析结果反馈给设备的阶段中,对于很多设备来说需要实时的能接收反控命令并响应于反控命令对数据及时完成反馈处理。而用于接收反控命令并响应于反控命令对数据及时完成反馈处理的程序,即设备交互程序worker,一般同时还担当着很多其他的任务,比如获取大量设备数据,将大量设备数据向外传输等。因此,现有设备交互程序worker必然存在反控命令如何才能被及时优先处理的问题。

发明内容

本发明实施例为了解决现有设备交互程序worker所存在的上述缺陷,创造性地提供了一种数据访问方法及装置。

根据本发明第一方面,提供了一种数据访问方法,该方法包括:通过轮询线程采集业务数据;通过所述独立于所述轮询线程的命令接收通道接收反控命令;将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;通过轮询线程监测所述实时任务队列;当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

根据本发明一实施方式,所述通过轮询线程采集业务数据,包括:解析业务数据采集配置文件,得到轮询间隔时间;根据所述轮询间隔时间采集业务数据。

根据本发明一实施方式,按照第一设定频率通过轮询线程采集业务数据;按照第二设定频率通过轮询线程监测所述实时任务队列;其中,所述第一设定频率小于第二设定频率。

根据本发明一实施方式,所述第一设定频率与所述第二设定频率的比值为1:500。

根据本发明一实施方式,所述通过轮询线程采集业务数据,包括:获取动态更新后的数据采集吞吐量;通过轮询线程根据所述数据采集吞吐量采集业务数据。

根据本发明第二方面,还提供了一种数据访问装置,所述装置包括:数据采集模块,用于通过轮询线程采集业务数据;命令接收模块,用于通过所述独立于所述轮询线程的命令接收通道接收反控命令;转换模块,用于将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;监测模块,用于通过轮询线程监测所述实时任务队列;数据输出模块,用于当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

根据本发明一实施方式,所述数据采集模块,具体用于解析业务数据采集配置文件,得到轮询间隔时间;根据所述轮询间隔时间采集业务数据。

根据本发明一实施方式,所述数据采集模块,具体用于按照第一设定频率通过轮询线程采集业务数据;所述监测模块,具体用于按照第二设定频率通过轮询线程监测所述实时任务队列;其中,所述第一设定频率小于第二设定频率。

根据本发明一实施方式,所述数据采集模块,具体用于获取动态更新后的数据采集吞吐量;通过轮询线程根据所述数据采集吞吐量采集业务数据。

根据本发明第三方面,又提供了一种数据访问装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任一数据访问方法。

本发明实施例数据访问方法及装置,首先通过轮询线程采集业务数据;同时通过所述独立于所述轮询线程的命令接收通道接收反控命令;进一步将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;再通过轮询线程监测所述实时任务队列;最后当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。如此,本发明通过设置设备交互程序(worker)为至少包括轮询线程和独立于轮询线程的命令接收通道,使得能够在通过轮询线程进行业务数据采集的同时,通过独立于轮询线程的命令接收通道进行反馈命令的接收,进一步通过内部引入实时读写任务队列的方式,从而保证在轮询线程中按照业务情况在不同时机中加入处理实时任务队列的逻辑,有效实现对反馈命令的及时优化处理,进而提升数据访问的时效性及可靠性。

需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

在附图中,相同或对应的标号表示相同或对应的部分。

图1示出了本发明实施例数据访问方法的实现流程示意图一;

图2示出了本发明实施例数据访问方法的实现流程示意图二;

图3示出了本发明实施例数据访问方法的实现流程示意图三;

图4示出了本发明实施例数据访问装置的组成结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为使本发明更加透彻和完整,并能够将本发明的范围完整地传达给本领域的技术人员。

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

相关技术中,现有设备交互程序worker为了解决无法对接收到的反控命令及时优化处理的问题,通常采用如下两种解决方案:

方案一,1.通过多个进程同时连接设备来进行并发处理,这种方案的好处是解决了设备独占通过多进程,多连接的办法来解决并发问题。这种方案的缺点是,在设备接收到反控命令的时候,往往还需要做一些业务逻辑(这个可能需要程序内部各个模块协调配合后)之后才能把结果返回给设备,如果采用多进程方案,首先需要对多个进程进行管理,并且建立进程间的通信机制才能确保逻辑正常处理后写入设备,这样很明显给外围的管理程序造成了大量的管理成本;如果进程发生意外,还需要有相应的容错机制保证业务的重建。

方案二,在一个程序内部,命令接收到后依赖线程间的分片机制来对设备进行读写(线程间通过抢占设备锁的方式),这种方案的问题在于将实时处理的时机交给了操作系统(Operation System,OS),对于分时操作系统来说,应用层并不能完全保证线程能及时被调度马上处理。

为了有效解决现有技术所存在的上述问题,本发明实施例提供了一种数据访问方法及装置。

图1示出了本发明实施例数据访问方法的实现流程示意图一。

参考图1,本发明实施例提供了一种数据访问方法,该方法包括:操作101,通过轮询线程采集业务数据;操作102,通过所述独立于所述轮询线程的命令接收通道接收反控命令;操作103,将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;操作104,通过轮询线程监测所述实时任务队列;操作105,当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

本发明一方面为了避免多进程同时连接设备进行并发处理,当进程发生意外时,需要有相应的容错机制来保证业务的重建的问题;另一方面为了克服在设备接收到反控命令的时候,多进程方案需要建立进程间的通信机制才能确保逻辑正常处理后写入设备的问题,创造性地设置设备交互程序直接通过一个轮询线程来进行业务数据的采集。

具体地,在操作101,设备启动交互程序后,首先需要解析业务数据采集配置文件,得到轮询间隔时间;再根据轮询间隔时间采集业务数据。

这里,设备在启动交互程序时或之前,会预先根据采集需求从采集服务端(server)加载业务数据采集配置文件到本地。其中,业务数据采集配置文件中包括述采集吞吐量、轮询间隔时间等采集参数信息。

其中,本发明实施例所涉及的业务数据的采集主要是在包括笔记本电脑、平板、智能手机等智能设备等的生产过程中针对各生产进程所使用的PLC设备/机床的指标参数、性能参数等的采集。

在操作102,为了保证反控命令能够及时被调用处理,本发明设备在交互程序中设置了独立于轮询线程的命令接收通道,以保证反控命令的实时接收。

进一步地,在操作103~104,由于设备独占,为了保证worker在通过轮询线程采集业务数据的同时,能够实时接收反馈命令并进行响应处理,加入设备锁会依赖OS的处理机制,因此本发明不通过锁的方式进行,而是通过内部引入一个实时读写任务队列,即在接收到反控命令之后,将反控命令转换为实时读写任务,并写入到实时任务队列,以通过轮询线程实时监测实时任务队列,从而保证在轮询线程中按照业务情况来在不同的时机中加入处理实时任务队列的逻辑。

在操作105,设备在轮询线程上监测到实时读写任务时,即可响应反控命令,输出所采集的业务数据,从而有效实现对反馈命令的及时优化处理。

如此,本发明通过设置设备交互程序(worker)为至少包括轮询线程和独立于轮询线程的命令接收通道,使得能够在通过轮询线程进行业务数据采集的同时,通过独立于轮询线程的命令接收通道进行反馈命令的接收,进一步通过内部引入实时读写任务队列的方式,从而保证在轮询线程中按照业务情况在不同时机中加入处理实时任务队列的逻辑,有效实现对反馈命令的及时优化处理,进而提升数据访问的时效性及可靠性。

图2示出了本发明实施例数据访问方法的实现流程示意图二。

参考图2,本发明实施例提供了一种数据访问方法,该方法包括:操作201,按照第一设定频率通过轮询线程采集业务数据;操作202,通过所述独立于所述轮询线程的命令接收通道接收反控命令;操作203,将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;操作204,按照第二设定频率通过轮询线程监测所述实时任务队列;操作205,当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

本发明一方面为了避免多进程同时连接设备进行并发处理,当进程发生意外时,需要有相应的容错机制来保证业务的重建的问题;另一方面为了克服在设备接收到反控命令的时候,多进程方案需要建立进程间的通信机制才能确保逻辑正常处理后写入设备的问题,创造性地设置设备交互程序直接通过一个轮询线程来进行业务数据的采集。

具体地,在操作201,设备启动交互程序后,首先需要解析业务数据采集配置文件,得到轮询间隔时间;将所述轮询间隔时间换算得到第一设定频率;再根据第一设定频率采集业务数据。

这里,设备在启动交互程序时或之前,会预先根据采集需求从采集服务端(server)加载业务数据采集配置文件到本地。其中,业务数据采集配置文件中包括述采集吞吐量、轮询间隔时间等采集参数信息。

在操作202,为了保证反控命令能够及时被调用处理,本发明设备在交互程序中设置了独立于轮询线程的命令接收通道,以保证反控命令的实时接收。

进一步地,在操作203~204,由于设备独占,为了保证worker在通过轮询线程采集业务数据的同时,能够实时接收反馈命令并进行响应处理,加入设备锁会依赖OS的处理机制,因此本发明不通过锁的方式进行,而是通过内部引入一个实时读写任务队列,即在接收到反控命令之后,将反控命令转换为实时读写任务,并写入到实时任务队列,以通过轮询线程实时监测实时任务队列,从而保证在轮询线程中按照业务情况来在不同的时机中加入处理实时任务队列的逻辑。

在一可实施方式中,轮询线程在采集数据的过程中,一般都有一个频率去采集,如果这个频率的时间比较长,这个时候来了一个实时读写任务的时候,为了能够马上处理,所以轮询线程在休眠的过程中也需要频率很短的情况下去检查实时任务队列,如果有任务,马上进入处理状态。基于此,本发明对应给你操作201设备会按照第一设定频率通过轮询线程采集业务数据;在操作204中设备会按照第二设定频率通过轮询线程监测所述实时任务队列;其中,所述第一设定频率小于第二设定频率。

在一应用示例中,第一设定频率与所述第二设定频率的比值为1:500。比如轮询间隔时间为1s,为了支持数据获取,不能让轮询线程休眠1s后再执行,故希望轮询线程每2ms就监测一次实时任务队列。

在操作205,设备在轮询线程上监测到实时读写任务时,即可响应反控命令,输出所采集的业务数据,从而有效实现对反馈命令的及时优化处理。

图3示出了本发明实施例数据访问方法的实现流程示意图三。

参考图3,本发明实施例提供了一种数据访问方法,该方法包括:操作301,获取动态更新后的数据采集吞吐量;302,通过轮询线程根据所述数据采集吞吐量采集业务数据;操作303,通过所述独立于所述轮询线程的命令接收通道接收反控命令;操作304,将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;操作305,通过轮询线程监测所述实时任务队列;操作306,当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

在设备进行业务数据的采集过程中,为了加快采集的速度和解决设备数据对齐问题,一般都会批量读取业务数据(跟设备交互一次,一次获取多个业务数据),这个降低了设备的交互,提升了数据采集的吞吐。但是单次获取时间会变长,对于实时要求的任务来说,这个时间很明显会影响实时需求。因此,采集服务端(server)需要按照实时的需求目标,动态调整业务数据采集配置文件中的采集吞吐量大小。

基于此,在操作301~302,设备会在轮询线程中实时监测采集服务端是否存在业务数据才配置文件的更新,当监测有业务数据才配置文件更新时,获取动态更新后的数据采集吞吐量;进一步地通过轮询线程根据所述数据采集吞吐量采集业务数据。

这里,设备在启动交互程序时或之前,会预先根据采集需求从采集服务端(server)加载业务数据采集配置文件到本地。其中,业务数据采集配置文件中包括述采集吞吐量、轮询间隔时间等采集参数信息。

其中,本发明实施例所涉及的业务数据的采集主要是在包括笔记本电脑、平板、智能手机等智能设备等的生产过程中针对各生产进程所使用的PLC设备/机床的指标参数、性能参数等的采集。

在操作303,为了保证反控命令能够及时被调用处理,本发明设备在交互程序中设置了独立于轮询线程的命令接收通道,以保证反控命令的实时接收。

进一步地,在操作304~305,由于设备独占,为了保证worker在通过轮询线程采集业务数据的同时,能够实时接收反馈命令并进行响应处理,加入设备锁会依赖OS的处理机制,因此本发明不通过锁的方式进行,而是通过内部引入一个实时读写任务队列,即在接收到反控命令之后,将反控命令转换为实时读写任务,并写入到实时任务队列,以通过轮询线程实时监测实时任务队列,从而保证在轮询线程中按照业务情况来在不同的时机中加入处理实时任务队列的逻辑。

在操作305,设备在轮询线程上监测到实时读写任务时,即可响应反控命令,输出所采集的业务数据,从而有效实现对反馈命令的及时优化处理。

同理,基于上文所述数据访问方法,本发明实施例还提供了一种数据访问装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如下所述的操作步骤:操作101,通过轮询线程采集业务数据;操作102,通过所述独立于所述轮询线程的命令接收通道接收反控命令;操作103,将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;操作104,通过轮询线程监测所述实时任务队列;操作105,当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

进一步地,基于上文所述数据访问方法,本发明实施例又提供了一种数据访问装置,如图4所示,该装置40包括:数据采集模块401,用于通过轮询线程采集业务数据;命令接收模块402,用于通过所述独立于所述轮询线程的命令接收通道接收反控命令;转换模块403,用于将所接收的反控命令转换为实时读写任务,并写入到实时任务队列;监测模块404,用于通过轮询线程监测所述实时任务队列;数据输出模块405,用于当监测到所述实时任务队列中包括有实时读写任务时,输出所采集的业务数据。

根据本发明一实施方式,数据采集模块401,具体用于解析业务数据采集配置文件,得到轮询间隔时间;根据所述轮询间隔时间采集业务数据。

根据本发明一实施方式,数据采集模块401,具体用于按照第一设定频率通过轮询线程采集业务数据;监测模块404,具体用于按照第二设定频率通过轮询线程监测所述实时任务队列;其中,所述第一设定频率小于第二设定频率。

根据本发明一实施方式,数据采集模块401,具体用于获取动态更新后的数据采集吞吐量;通过轮询线程根据所述数据采集吞吐量采集业务数据。

这里需要指出的是:以上对数据访问装置实施例的描述,与前述图1至3所示的方法实施例的描述是类似的,具有同前述图1至3所示的方法实施例相似的有益效果,因此不做赘述。对于本发明数据访问装置实施例中未披露的技术细节,请参照本发明前述图1至3所示的方法实施例的描述而理解,为节约篇幅,因此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种数据访问和存储方法、数据访问和存储装置、数据访问和存储系统
  • 数据访问装置、数据访问方法以及数据访问程序
技术分类

06120112624218