CN106844075A - 一种数据传递方法和设备 - Google Patents
一种数据传递方法和设备 Download PDFInfo
- Publication number
- CN106844075A CN106844075A CN201510884165.4A CN201510884165A CN106844075A CN 106844075 A CN106844075 A CN 106844075A CN 201510884165 A CN201510884165 A CN 201510884165A CN 106844075 A CN106844075 A CN 106844075A
- Authority
- CN
- China
- Prior art keywords
- data
- region
- value
- pointer
- circulation array
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据传递方法和设备,该方法包括:将采集到的数据存入循环数组;从所述循环数组中提取数据;将提取的数据回传给数据接收设备;也即通过循环数组来完成了数据的回传,通过循环数组,使得数据在回传过程中,***资源开销小,对监控数据影响小,从而使得监控数据更准确;而在数据的获取以及存入的不同线程是异步的,也即线程间没有锁的竞争,进一步减少了***开销;此外,循环数组是事先申请的一块连续内存区域,后续不需要频繁地申请和释放内存,减少申请和释放内存的开销。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种数据传递方法。本申请实施例同时还涉及一种数据传递设备。
背景技术
在现有技术中,需要将采集到的数据,回传给监控设备;而在具体的回传过程中,需要在对***资源的消耗要尽可能的小,以便减小对采集的性能监控数据准确性的影响。
而在目前的回传方案中,有以下几种方式:
方式一、单线程回传,也即在采集得到数据后,立马将数据回传给监控设备,而不对数据进行保存;这种方式会频繁调用回传程序,产生***开销,从而影响数据准确性;使得无法保证数据的完整性,且一旦一次回传失败后,该数据就会丢失,无法重试。
方式二、通过日志文件方式回传,也即先将采集到的监控数据,打印到一个日志文件中,日志文件保存在用户的机器上;同时再启动一个进程,用以异步地逐行扫描该日志文件,每读取一行日志文件数据,就将读取到的日志文件数据回传给监控设备;在这种方式中,会造成频繁的IO(Input/Output,输入/输出)操作,会占用大量的***IO资源,同时在IO操作过程中,也会对CPU(Central Processing Unit,中央处理器)等指标产生影响,同样会造成数据的不准确。
方式三、通过数组或链表的方式回传,也即将采集到的数据先存放在一个数组或链表中,同时再启动一个进程B,定时从数组或链表中获取数据,并将获取到的数据回传给监控设备;但是数组和链表线程不安全,在多线程的情况下,容易出现问题;其次,数组和链表在取出数据后,需要将数组或链表中的这个数据删除,删除过程需要对整个数组或链表的数据进行移动,数据量大的话,会造成***开销,影响采集数据的准确性;而频繁的节点操作,会引起频繁的申请和释放内存操作,造成***开销;且如果消费数据的进程出现问题,导致数据无法及时被使用掉,会导致数组或链表中的数据堆积,时间长了容易引起内存溢出的问题。
可见现有的回传方式都无法满足在回传时对***资源的消耗要尽可能的小,以及减小对采集的性能监控数据准确性的影响的需要。
发明内容
针对现有技术中无法满足在回传时对***资源的消耗要尽可能小的要求,以及面临无法减小对采集的性能监控数据准确性的影响的缺陷,本申请提出了一种数据传递方法,包括:
将采集到的数据存入循环数组;
从所述循环数组中提取数据;
将提取的数据回传给数据接收设备。
可选的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述将采集到的数据存入循环数组,具体包括:
将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
可选的,所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;所述尾指针对应的区域的编号和所述尾指针的值相同;
所述将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中,具体包括:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则保留预加1后的头指针的值为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则保留预加1后的尾指针的值为尾指针的值。
可选的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述从所述循环数组中提取数据,具体包括:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
可选的,所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号所述头指针的值相同;
所述按照所述先后顺序关系依次从所述循环数组的区域中提取数据,具体包括;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零;
若判断结果为否,则保留预加1后的头指针的值为头指针的值。
可选的,所述将提取的数据回传给数据接收设备,具体包括:
将提取的数据通过HTTP的方式回传给数据接收设备。
可选的,在将提取的数据回传给数据接收设备之后,还包括:
将所述数据接收设备接收到的数据存入数据库中。
本申请还提出了一种数据传递设备,包括:
存入模块,用于将采集到的数据存入循环数组;
提取模块,用于从所述循环数组中提取数据;
回传模块,用于将提取的数据回传给数据接收设备。
可选的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述存入模块,具体用于:
将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
可选的,所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;所述尾指针对应的区域的编号和所述尾指针的值相同;
所述存入模块,具体用于:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则将预加1后的头指针的值设置为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则将预加1后的尾指针的值设置为尾指针的值。
可选的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述提取模块,具体用于:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
可选的,所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号所述头指针的值相同;
所述提取模块,具体用于;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零。
可选的,所述回传模块,具体用于:
将提取的数据通过HTTP的方式回传给数据接收设备。
可选的,该设备包括:
存储模块,用于将所述数据接收设备接收到的数据存入数据库中。
与现有技术相比,本申请中通过将采集到的数据存入循环数组;从所述循环数组中提取数据;将提取的数据回传给数据接收设备;也即通过循环数组来完成了数据的回传,通过循环数组,使得数据在回传过程中,***资源开销小,对监控数据影响小,从而使得监控数据更准确;而在数据的获取以及存入的不同线程是异步的,也即线程间没有锁的竞争,进一步减少了***开销;此外,循环数组是事先申请的一块连续内存区域,后续不需要频繁地申请和释放内存,减少申请和释放内存的开销。
附图说明
图1为本申请实施例提出的一种数据传递方法的流程示意图;
图2为本申请实施例提出的一种循环数组的示意图;
图3为本申请实施例提出的一种数据存储方法的流程示意图;
图4为本申请实施例提出的一种数据提取方法的流程示意图;
图5为本申请实施例提出的一种数据传递设备的结构示意图。
具体实施方式
如背景技术所述,现有技术中的回传方案都无法满足对***资源的消耗要尽可能的小,以及减小对采集的性能监控数据准确性的影响的要求,为此,本申请公开了一种数据传递方法,应用于监控***中(监控***要求***资源消耗尽可能低),用以在数据回传的过程中,实现比现有技术中耕地的资源消耗,从而有效减小了对采集的性能监控数据准确性的影响,该方法如图1所示,包括以下步骤:
步骤101、将采集到的数据存入循环数组。
具体的,循环数组如图2所示,是一个循环连续的数组,循环数组中包含有预设数量的用于存储数据的区域,各所述区域之间存在先后顺序关系;其中各个区域用以零开头的连续的数字进行标识,从0开始,例如若有7个区域,则分别标识为0、1、2、3、4、5、6;以此,具体的将采集到的数据存入循环数组,包括:将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
更具体的,所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;所述尾指针对应的区域的编号与所述尾指针的值相同;例如若头指针或尾指针的值为1,则对应的区域的标识数字也为1;以此具体的将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中,具体包括:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则保留预加1后的头指针的值为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则保留预加1后的尾指针的值为尾指针的值。
事实上,循环数组实质是一个一定长度的数组,本申请中通过设置使其可以实现循环,从而变成循环数组,具体的在存储数据的过程中,其过程如图3所示,首先将数据存入尾指针(也即indexEnd)对应的区域,存完后,会判断循环数组中的各个区域是否满了(也即存储的数据的数量是否等于区域的数量),为了防止多线程引起的线程安全问题,这里还需要再判断下头尾指针是否在同一个位置(也即判断头指针indexHead的值是否等于indexEnd的值),因为循环数组满了的时候,头尾指针必定是在同一个位置的(此时两个指针正好相差一圈的距离),如果头尾指针不在同一个位置,说明有多个线程在操作这个数组,这时候,为了防止线程安全问题,就不能对头指针进行操作。
如果循环数组中的各个区域满了,且头尾指针在同一个位置,则头指针的值预加1,例如原本为6,预加1后,变为7,也即头指针对应的区域向右移动一个区域(当然也可以设置为向左移动一个区域,例如循环数组的个区域是以反序的方式来标识的),溢出了循环数组,此时,取消对头指针的进行预加1后的值,设置头指针的值为0,这样,新数据覆盖队列最前面的一个数据,数据总数没有变,所以存储的数据的数量size不用加1;若循环数组的各区域未满,则将存储的数据的数量加1,即size加1;而在头指针或者尾指针在变化后,需要判断下其是否溢出了数组,溢出的指针的值取消预加1后的值,直接被赋值为0;若没有溢出,则保留预加1后的值为指针的值。
存入数据,也即步骤101是一个线程,此外还存在一个异步的操作,也即进行数据提取,也即进行步骤102。
步骤102、从循环数组中提取数据。
具体的,循环数组中包含有预设数量的用于存储数据的区域;各所述区域之间存在先后顺序关系;以此,所述从所述循环数组中提取数据,具体包括:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
而更具体的,所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号所述头指针的值相同;
所述按照所述先后顺序关系依次从所述循环数组的区域中提取数据,具体包括;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零;
若判断结果为否,则保留预加1后的头指针的值为头指针的值。
具体的数据提取过程如图4所示,首先判断size是否大于0,也即判断循环数组中是否存储有数据,但确定存储有数据时,则从头指针(indexHead)对应的区域提取数据;将数据提取出来后,将size减1,也即将循环数组中存储的数据的数量减1,然后头指针的值预加1,也即头指针对应的区域向右移动一个区域,当然也可以是向左移动一个区域,具体的可以设置,只要保证头指针和尾指针的值变化后,相同的变化移动的是相同的区域即可,并判断加1后的头指针的值是否溢出了循环数组,而具体的可以使用&位运算来完成破判断的过程,规定循环数组的大小为2的指数倍,用QUEUE_SIZE来表示,指针用index表示。那么移动后,指针的位置就是(index+1)&(QUEUE_SIZE-1);直接使用位运算就可以得到,避免了if判断操作、加减法操作和取余操作,运算起来更快,***资源开销更小,例如当预加1后的头指针的值为7,但标识循环数组中区域的最大的数字为6,由于7>6,则可以确定溢出了,在此情况下,直接将头指针的值归零,也即将头指针对应的区域设置为循环数组中被标识为0的区域,也即顺序上的第一个区域;若没有溢出,则保留预加1后的值(例如为7)作为头指针的值,并结束操作。
前述的步骤101和步骤102只是基于描述的需要设置的标号,并不具有顺序的含义,事实上,这两个步骤属于异步的操作,且互相是不会干扰的,也即在执行步骤101的同时,是可以同时执行步骤102的。
步骤103、将提取的数据回传给数据接收设备。
具体的回传过程,可以包括:
将提取的数据通过HTTP(HyperText Transfer Protocol,超文本传输协议)的方式回传给数据接收设备;当然除此以外,还可以有很多别的方式来实现回传,只要能实现数据的准确有效地传递即可,并不限于HTTP这一种方式。
而在将提取的数据回传给数据接收设备之后,还包括:
将所述数据接收设备接收到的数据存入数据库中。
为了对本申请进行进一步的说明,本申请还公开了一种数据传递设备,如图5所示,包括:
存入模块501,用于将采集到的数据存入循环数组;
提取模块502,用于从所述循环数组中提取数据;
回传模块503,用于将提取的数据回传给数据接收设备。
具体的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述存入模块501,具体用于:
将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针和所述尾指针分别对应的区域的编号分别与所述头指针和所述尾指针的值相同;
所述存入模块501,具体用于:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则保留预加1后的头指针的值为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则保留预加1后的尾指针的值为尾指针的值。
具体的,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述提取模块502,具体用于:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号所述头指针的值相同;
所述提取模块502,具体用于;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零;
若判断结果为否,则保留预加1后的头指针的值为头指针的值。
具体的,所述回传模块503,具体用于:
将提取的数据通过HTTP的方式回传给数据接收设备。
具体的,该设备,还包括:
存储模块,用于将所述数据接收设备接收到的数据存入数据库中。
与现有技术相比,本申请中通过将采集到的数据存入循环数组;从所述循环数组中提取数据;将提取的数据回传给数据接收设备;也即通过循环数组来完成了数据的回传,通过循环数组,使得数据在回传过程中,***资源开销小,对监控数据影响小,从而使得监控数据更准确;而在数据的获取以及存入的不同线程是异步的,也即线程间没有锁的竞争,进一步减少了***开销;此外,循环数组是事先申请的一块连续内存区域,后续不需要频繁地申请和释放内存,减少申请和释放内存的开销。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (14)
1.一种数据传递方法,其特征在于,应用于监控***中,该方法包括:
将采集到的数据存入循环数组;
从所述循环数组中提取数据;
将提取的数据回传给数据接收设备。
2.如权利要求1所述的方法,其特征在于,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述将采集到的数据存入循环数组,具体包括:
将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
3.如权利要求1所述的方法,其特征在于,所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;所述尾指针对应的区域的编号和所述尾指针的值相同;
所述将采集到的数据按照所述先后顺序依次存储在所述循环数组的区域中,具体包括:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则保留预加1后的头指针的值为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则保留预加1后的尾指针的值为尾指针的值。
4.如权利要求1所述的方法,其特征在于,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述从所述循环数组中提取数据,具体包括:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
5.如权利要求4所述的方法,其特征在于,所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;
所述按照所述先后顺序关系依次从所述循环数组的区域中提取数据,具体包括;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零;
若判断结果为否,则保留预加1后的头指针的值为头指针的值。
6.如权利要求1所述的方法,其特征在于,所述将提取的数据回传给数据接收设备,具体包括:
将提取的数据通过HTTP的方式回传给数据接收设备。
7.如权利要求1所述的方法,其特征在于,在将提取的数据回传给数据接收设备之后,还包括:
将所述数据接收设备接收到的数据存入数据库中。
8.一种数据传递设备,其特征在于,应用于监控***中,该设备包括:
存入模块,用于将采集到的数据存入循环数组;
提取模块,用于从所述循环数组中提取数据;
回传模块,用于将提取的数据回传给数据接收设备。
9.如权利要求8所述的设备,其特征在于,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述存入模块,具体用于:
将采集到的数据按照所述区域的先后顺序依次存储在所述循环数组的区域中。
10.如权利要求9所述的设备,其特征在于,所述循环数组中包括头指针和尾指针,所述头指针和所述尾指针分别对应所述循环数组中一个区域;所述头指针对应的区域的编号与所述头指针的值相同;所述尾指针对应的区域的编号和所述尾指针的值相同;
所述存入模块,具体用于:
将采集到的数据存入所述循环数组中所述尾指针对应的区域;
判断所述循环数组的各区域是否已满,且头指针与尾指针是否对应于同一个区域;
若判断结果都为是,则将头指针的值预加1;
若判断结果为否,则将表示所述循环数组中数据的数量的数值加1;
将尾指针的值预加1;
判断当前的头指针或尾指针所对应的区域是否溢出所述循环数组;
若当前的头指针所对应的区域溢出所述循环数组,则取消预加1后的所述头指针的值,并将所述头指针的值归零;若当前的头指针所对应的区域没有溢出所述循环数组,则保留预加1后的头指针的值为所述头指针的值;
若当前的尾指针所对应的区域溢出所述循环数组,则取消预加1后的所述尾指针的值,并将所述尾指针的值归零;若当前的尾指针所对应的区域没有溢出所述循环数组,则保留预加1后的尾指针的值为尾指针的值。
11.如权利要求8所述的方法,其特征在于,所述循环数组中包含有预设数量用于存储数据的区域;各所述区域之间存在先后顺序关系;
所述提取模块,具体用于:
按照所述先后顺序关系依次从所述循环数组的区域中提取数据。
12.如权利要求11所述的设备,其特征在于,所述循环数组中包括头指针,所述头指针对应所述循环数组中一个区域;所述头指针对应的区域的编号所述头指针的值相同;
所述提取模块,具体用于;
判断所述循环数组中是否存储有数据;
若判断结果为是,则从所述循环数组中所述头指针所对应的区域提取数据;
将表示所述循环数组中数据的数量的数值减1;
将头指针的值预加1;
判断当前的头指针所对应的区域是否溢出了所述循环数组;
若判断结果为是,则取消预加1后的头指针的值,并将头指针的值归零;
若判断结果为否,则保留预加1后的头指针的值为头指针的值。
13.如权利要求8所述的设备,其特征在于,所述回传模块,具体用于:
将提取的数据通过HTTP的方式回传给数据接收设备。
14.如权利要求8所述的设备,其特征在于,还包括:
存储模块,用于将所述数据接收设备接收到的数据存入数据库中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510884165.4A CN106844075A (zh) | 2015-12-04 | 2015-12-04 | 一种数据传递方法和设备 |
PCT/CN2016/107079 WO2017092603A1 (zh) | 2015-12-04 | 2016-11-24 | 一种数据传递方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510884165.4A CN106844075A (zh) | 2015-12-04 | 2015-12-04 | 一种数据传递方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844075A true CN106844075A (zh) | 2017-06-13 |
Family
ID=58796284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510884165.4A Pending CN106844075A (zh) | 2015-12-04 | 2015-12-04 | 一种数据传递方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106844075A (zh) |
WO (1) | WO2017092603A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766526A (zh) * | 2017-10-26 | 2018-03-06 | 中国人民银行清算总中心 | 数据库访问方法、装置及*** |
CN107844511A (zh) * | 2017-06-16 | 2018-03-27 | 珠海金山网络游戏科技有限公司 | 一种基于周期成本的游戏资源缓存方法和*** |
CN109713790A (zh) * | 2018-12-19 | 2019-05-03 | 国网山东省电力公司无棣县供电公司 | 一种电网调控信息采集*** |
CN109727437A (zh) * | 2018-12-19 | 2019-05-07 | 国网山东省电力公司无棣县供电公司 | 一种远程无线抄表*** |
CN109740396A (zh) * | 2018-12-19 | 2019-05-10 | 国网山东省电力公司无棣县供电公司 | 一种用于供电***的后勤物资采集*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1378143A (zh) * | 2001-03-30 | 2002-11-06 | 深圳市中兴通讯股份有限公司 | 一种实现快速数据传递的方法 |
CN1694434A (zh) * | 2001-03-30 | 2005-11-09 | 中兴通讯股份有限公司 | 一种实现快速数据传递的方法 |
CN101651825A (zh) * | 2008-08-13 | 2010-02-17 | 北大方正集团有限公司 | 数据采集上传方法和*** |
US20130114960A1 (en) * | 2011-11-08 | 2013-05-09 | Marvell Israel (M.I.S.L) Ltd. | Method and Apparatus for Transmitting Data on a Network |
CN103186585A (zh) * | 2011-12-29 | 2013-07-03 | 北京亿阳信通科技有限公司 | 一种队列处理方法及装置 |
-
2015
- 2015-12-04 CN CN201510884165.4A patent/CN106844075A/zh active Pending
-
2016
- 2016-11-24 WO PCT/CN2016/107079 patent/WO2017092603A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1378143A (zh) * | 2001-03-30 | 2002-11-06 | 深圳市中兴通讯股份有限公司 | 一种实现快速数据传递的方法 |
CN1694434A (zh) * | 2001-03-30 | 2005-11-09 | 中兴通讯股份有限公司 | 一种实现快速数据传递的方法 |
CN101651825A (zh) * | 2008-08-13 | 2010-02-17 | 北大方正集团有限公司 | 数据采集上传方法和*** |
US20130114960A1 (en) * | 2011-11-08 | 2013-05-09 | Marvell Israel (M.I.S.L) Ltd. | Method and Apparatus for Transmitting Data on a Network |
CN103186585A (zh) * | 2011-12-29 | 2013-07-03 | 北京亿阳信通科技有限公司 | 一种队列处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘振鹏、张晓莉、郝杰: "《数据结构》", 31 December 2003 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844511A (zh) * | 2017-06-16 | 2018-03-27 | 珠海金山网络游戏科技有限公司 | 一种基于周期成本的游戏资源缓存方法和*** |
CN107766526A (zh) * | 2017-10-26 | 2018-03-06 | 中国人民银行清算总中心 | 数据库访问方法、装置及*** |
CN107766526B (zh) * | 2017-10-26 | 2020-04-28 | 中国人民银行清算总中心 | 数据库访问方法、装置及*** |
CN109713790A (zh) * | 2018-12-19 | 2019-05-03 | 国网山东省电力公司无棣县供电公司 | 一种电网调控信息采集*** |
CN109727437A (zh) * | 2018-12-19 | 2019-05-07 | 国网山东省电力公司无棣县供电公司 | 一种远程无线抄表*** |
CN109740396A (zh) * | 2018-12-19 | 2019-05-10 | 国网山东省电力公司无棣县供电公司 | 一种用于供电***的后勤物资采集*** |
CN109740396B (zh) * | 2018-12-19 | 2022-05-27 | 国网山东省电力公司无棣县供电公司 | 一种用于供电***的后勤物资采集*** |
Also Published As
Publication number | Publication date |
---|---|
WO2017092603A1 (zh) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844075A (zh) | 一种数据传递方法和设备 | |
CN109800320B (zh) | 一种图像处理方法、设备及计算机可读存储介质 | |
US11720787B2 (en) | Method and system for training machine learning system | |
CN103189867B (zh) | 重复数据检索方法及设备 | |
CN108292257B (zh) | 用于注解客户端-服务器事务的***和方法 | |
CN106126326A (zh) | 定时任务管理方法和装置 | |
CN110766711A (zh) | 一种视频镜头分割方法、***、装置和存储介质 | |
CN109559342B (zh) | 动物体长的测量方法和装置 | |
CN105302715B (zh) | 应用程序用户界面的获取方法和装置 | |
CN103684823A (zh) | 网络日志记录方法、网络访问路径确定方法及相关装置 | |
CN110084653A (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN111857703B (zh) | 一种界面中图层的匹配方法、装置及电子设备 | |
CN109408041A (zh) | 一种基于编程语言的地图坐标系转换方法及电子设备 | |
WO2018205391A1 (zh) | 信息检索准确性评估方法、***、装置及计算机可读存储介质 | |
CA2788100C (en) | Crawling of generated server-side content | |
CN112215276A (zh) | 一种对抗网络的训练方法、装置、电子设备和存储介质 | |
CN108279993A (zh) | 实现业务降级的方法及装置和电子设备 | |
CN106599005B (zh) | 一种数据归档方法及装置 | |
DE102017005608A1 (de) | Numerische Steuerung und Variablen-Ermittlungsverfahren | |
CN106569734B (zh) | 数据洗牌时内存溢出的修复方法及装置 | |
US8954974B1 (en) | Adaptive lock list searching of waiting threads | |
US9705972B2 (en) | Managing a set of data | |
CN113468431B (zh) | 基于用户行为的内容推荐方法及装置 | |
CN112598616B (zh) | 一种电子设备曝光参数的确定方法及成像方法 | |
JP6064756B2 (ja) | 性能データ収集プログラム、装置、及び方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |