搅拌站以及用于该搅拌站的数据存储方法、服务器、系统的制作方法

文档序号:6435767阅读:281来源:国知局
专利名称:搅拌站以及用于该搅拌站的数据存储方法、服务器、系统的制作方法
技术领域
本发明涉及数据存储领域,具体地,涉及一种搅拌站以及用于该搅拌站的数据存储方法、服务器、系统。
背景技术
现有的数据服务器多采用阻塞模式来存储数据,其具体为数据服务器在收到数据之后,将该数据存入缓存区内,之后再将该缓冲区内的数据存入数据库内,并在数据存入数据库之后,方才接收下一数据。然而,将数据存储至数据库是一个比较消耗资源及时间的操作,尤其是在数据量较大的情况下,该操作会导致大量CPU时间片被占用,且缓冲区资源释放缓慢,严重阻塞了新到达数据服务器的数据的存储。

发明内容
本发明的目的是提供一种搅拌站以及用于该搅拌站的数据存储方法、服务器、系统,本发明占用非常少的CPU时间片,缓冲区资源释放快,执行效率高。为了实现上述目的,本发明提供一种用于搅拌站通信服务器的数据存储方法,该方法包括在第一时间段,接收数据,并将该时间段所接收的数据写入多个缓冲区中的第一缓冲区;以及在第二时间段,接收数据,并将该时间段所接收的数据写入所述多个缓冲区中的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。相应地,本发明还提供一种搅拌站通信服务器,该服务器包括数据接收装置,用于接收数据;存储装置,包含多个缓冲区;以及处理器,与所述数据接收装置和存储装置相连,用于在第一时间段,将所述数据接收装置于该时间段所接收的数据写入多个缓冲区内的第一缓冲区;以及在第二时间段,将所述数据接收装置于该时间段所接收的数据写入所述多个缓冲区内的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。相应地,本发明还提供一种搅拌站系统,该系统包括车载终端,用于发送数据; 以及上述搅拌站通信服务器。相应地,本发明还提供一种搅拌站,该搅拌站包括上述搅拌站通信服务器。通过上述技术方案,可向一缓冲区内写入数据,并在该数据未被存入数据库的情况下,接收下一数据,并将该数据存入另一缓冲区,与此同时从写有数据的缓冲区读取数据并将该数据存入数据库内。该过程与需在数据存入数据库之后方才能够接收下一数据的阻塞存储模式相比,将数据存入数据库这种I/O操作可由一线程独立执行,数据的接收不需要等待其他工作,从而可不断接收数据,并于此同时不断将之前所接收的数据存入数据库内,执行效率高,占用CPU时间片少。本发明的其他特征和优点将在随后的具体实施方式
部分予以详细说明。


附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式
一起用于解释本发明,但并不构成对本发明的限制。在附图中图1为搅拌站系统的结构示意图;图2A为本发明第一实施方式的数据存储方法的流程图;图2B为本发明第一实施方式的数据存储方法的执行过程示意图;图3A-3C为本发明第一实施方式的数据存储方法的流程图;图4A为本发明第二实施方式的数据存储方法的流程图;以及图4B为本发明第二实施方式的数据存储方法的执行过程示意图。附图标记说明100数据服务器 200 通信服务器300车载终端 400 调度中心A、B、C 缓冲区Pl 写指针P2读指针
具体实施例方式以下结合附图对本发明的具体实施方式
进行详细说明。应当理解的是,此处所描述的具体实施方式
仅用于说明和解释本发明,并不用于限制本发明。如图1所示,在搅拌站运营管理过程中,数据服务器100需经由通信服务器200接收来自车载终端300的数据,并将该数据存储于数据库内,以供调度中心400进行调度。本发明提供了一种用于搅拌站通信服务器的数据存储方法,该方法包括在第一时间段,接收数据,并将该时间段所接收的数据写入多个缓冲区中的第一缓冲区;以及在第二时间段,接收数据,并将该时间段所接收的数据写入所述多个缓冲区中的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。籍此,可向一缓冲区内写入数据, 并在该数据未被存入数据库的情况下,接收下一数据,并将该数据存入另一缓冲区,与此同时从写有数据的缓冲区读取数据并将该数据存入数据库内。该过程与需在数据存入数据库之后方才能够接收下一数据的阻塞存储模式相比,将数据存入数据库这种I/O操作可由一线程独立执行,数据的接收不需要等待其他工作,从而可不断接收数据,并于此同时不断将之前所接收的数据存入数据库内,执行效率高,占用CPU时间片少。其中,该方法还可包括在第三时间段,将该时间段所需存储的数据写入所述第一缓冲区或所述多个缓冲区中的第三缓冲区,读取之前的时间段内已写入数据的缓冲区内的数据存入数据库。此时,对于写入所述第一缓冲区而言,可直接覆盖第一缓冲区内存入的数据。其中,在将所述之前的时间段已写入数据的缓冲区内的数据存入所述数据库之后,释放该缓冲区。籍此,得到动态释放缓冲区的效果,使得被释放的缓冲区可用于其他应用,避免该缓冲区被长期占用。其中,所述针对第二时间段和第三时间段的步骤可循环交替执行。其中,该方法还可包括建立一读写标志,每隔预设时间将该读写标志的值于第一值与第二值之间切换一次,所述针对第二时间段的步骤与所述针对第三时间段的步骤在该读写标志的值切换时进行交替。以下结合具体实施方式
来对本发明提供的异步数据存储方法进行描述。第一实施方式图2A为本发明第一实施方式的数据存储方法的流程图。如图2A所示,本发明提供了一种异步数据存储方法,该方法包括预先创建第一内存管理列表和第二内存管理列表;在第一时间段内,将该时间段所需存储的数据写入内存,并将该内存地址加入所述第一内存管理列表;以及在第二时间段内,将该时间段所需存储的数据写入内存,并将该内存地址加入所述第二内存管理列表,同时读取所述第一内存管理列表内的内存地址所存储的数据,并将该数据存入数据库,之后删除所述第一内存管理列表内的内存地址。其中,该方法还包括在第三时间段内,将该时间段所需存储的数据写入内存,并将该内存地址加入所述第一内存管理列表,同时读取所述第二内存管理列表内的内存地址所存储的数据,并将该数据存入所述数据库,之后删除所述第二内存管理列表内的内存地址。其中,所述第一时间段、第二时间段以及第三时间段的持续时间可根据所述内存的容量以及各时间段所需存储的数据的量而设置,以使得内存可容纳相应时间段所需存储的所有数据。例如,内存的容量越大,则时间段的持续时间需设置得越长;一时间段所需存储的数据的量越大,则该时间段的持续时间需设置得越短,以使得内存可满足该时间段的数据的存储。其中,可在将所述第一内存管理列表或第二内存管理列表内的内存地址所存储的数据存入数据库之后,释放该内存地址所对应的内存。藉此,可使得内存的资源得到及时释放,以便所释放的资源可用于后续的所需存储的数据或用于其他用途,实现内存的动态分配及释放。其中,所述针对第二时间段和第三时间段的步骤可循环交替执行,即在一时间段, 以第一内存管理列表来管理用于写入数据的内存地址,与此同时,读取第二内存管理列表所包含的内存地址所存储的数据,并将该数据存入数据库;在之后的另一时间段,以第二内存管理列表来管理用于写入数据的内存地址,于此同时,读取第一内存管理列表所包含的内存地址所存储的数据,并将该数据存入数据库;之后,再以第一内存管理列表来管理用于写入数据的内存地址,于此同时,读取第二内存管理列表所包含的内存地址所存储的数据, 并将该数据存入数据库。藉此,可不断轮换第一内存管理列表与第二内存管理列表的功能 (即,分别用于写入数据与读取数据),实现大量连续数据的存储,执行效率高。其中,该方法还包括建立读写标志,该读写标志每隔预设时间(例如,10秒)于第一值(例如,1)与第二值(例如,2)之间切换一次,所述第一时间段、第二时间段以及第三时间段之间的切换根据该读写标志的改变而进行。该读写标志的具体使用过程将在下文中结合图3A-3C进行详细描述。当然,第一时间段、第二时间段以及第三时间段之间的切换并非必须借助该读写标志实现,亦可通过于程序内设定其他切换条件(诸如,当所述内存所存储的数据达到容量上限时)而实现。图2B为本发明第一实施方式的数据存储方法的执行过程示意图。如图2B所示, 在此假设第一和第二内存管理列表所管理的内存地址均是固定的,分别对应于内存内的缓冲区A和缓冲区B,以便于进行说明。在时间段tl,缓冲区A和缓冲区B均为空。在时间段t2,将网络终端310所发送的数据写入缓冲区A。在时间段t3,将网络终端310所发送的数据写入缓冲区B,同时读取所述缓冲区A所存储的数据,并将该数据写入数据库110,之后释放缓冲区A。在时间段t4,将网络终端310所发送的数据写入缓冲区A,同时读取所述缓冲区B所存储的数据,并将该数据写入数据库110,之后释放缓冲区B。在时间段t5,将网络终端310所发送的数据写入缓冲区B,同时读取所述缓冲区A所存储的数据,并将该数据写入数据库110,之后释放缓冲区A(该时间段t3所执行的操作与上述时间段t3所执行的操作相同)。循环交替执行与上述时间段t3和t4所执行操作相同的操作,直至时间段tn。藉此,对大量连续到来的所需存储的数据进行无间断写入与读取并存入数据库110的操作, 提高了数据存储效率。图3A-3C以图IA所示的搅拌站系统为例,示出了本发明第一实施方式的上述异步数据存储方法的流程图。以下结合图3A-3C对本发明的数据存储方法的具体实施方式
进行描述。如图3A-3C所示,异步数据存储通过两个线程执行,即主线程与数据存储线程,其中该数据存储线程由主线程所创建,且主线程创建该数据存储线程的同时,创建读写标志、 第一内存管理列表和第二内存管理列表。图3A示出了主线程的操作流程(于此省略了创建数据存储线程以及创建读写标志、第一内存管理列表和第二内存管理列表的操作),如图 3A所示,数据服务器100的主线程启动数据服务器100的通信功能,之后等待数据,并在收到来自车载终端300的数据之后,对该数据进行解析,在该数据为有效数据的情况下,将该数据发送至数据存储线程,并在该数据服务器100的图形界面上显示该数据;在该数据为无效数据的情况下,丢弃该数据。之后,主线程判断是否退出通信,如果是,则关闭通信功能,如果否,则继续回到上述等待数据的步骤。其中,所述对数据是否为有效数据的判断可通过包含于数据内的校验码来进行校验,该校验例如可为奇偶校验、HASH校验或MD5校验寸。图;3B示出了数据存储线程的写入缓冲区的操作流程,图3C示出了数据存储线程的读取缓冲区并存入数据库的操作流程,图:3B与图3C所示的操作并行运行。如图IBB所示,数据存储线程接收来自主线程的数据,将该数据写入内存,并判断读写标志,当读写标志为1时,将所写入的内存地址加入至第一内存管理列表;当读写标志为2时,将所写入的内存地址加入至第二内存管理列表。如图3C所示,数据存储线程每隔一预定时间,进行一次将第一或第二内存管理列表内的内存地址所存储的数据存入数据库的操作,并与此同时,切换第一内存管理列表与第二内存管理列表的功能。首先,数据存储线程判断数据库是否已连接,当未连接数据库时,进行连接数据库的操作;当已连接数据库时,判断读写标志,当读写标志为1时,将读写标志置为2,读取第一内存管理列表内的内存地址所存储的数据,将该数据存入数据库,并释放该内存地址所对应的内存,从第一内存管理列表中删除该内存地址;当读写标志为2 时,将读写标志置为1,读取第二内存管理列表内的内存地址所存储的数据,将该数据存入数据库,并释放该内存地址所对应的内存,从第二内存管理列表中删除该内存地址。之后, 判断是否退出该数据存储线程,如果不退出,则重新进入等待时期并在此之后执行以上操作;如果退出,则须读取第一和第二内存管理列表内的内存地址所存储的数据,将该数据存入数据库内,并释放该内存地址所对应的内存以及第一和第二内存管理列表,藉此于数据存储线程退出之前,完成第一和第二内存管理列表内的内存地址所存储的所有数据存入数据库的操作。在图3C所示操作中,在判断读写标志时,假设读写标志为1,则将读写标志置为2, 读取第一内存管理列表内的内存地址所存储的数据,将该数据存入数据库,并释放该内存地址所对应的内存,从第一内存管理列表中删除该内存地址,之后数据存储线程进入等待时期,并于等待预定时间之后,重新执行以上操作。此时,读写标志为2,则读取第二内存管理列表内的内存地址所存储的数据,将该数据存入数据库,并释放该内存地址所对应的内存,从第二内存管理列表中删除该内存地址。藉此,可实现第一内存管理列表与第二内存管理列表的交替读取。另外,就数据存储线程的将内存地址加入至内存管理列表的操作而言,当读写标志为1时,数据存储线程将所接收的数据所被写入的内存地址加入至第一内存管理列表; 于此同时,当数据存储线程经历等待时间之后,由于读写标志为1,其将读写标志置为2(此后所接收的数据所被写入的内存地址将被加入至第二内存管理列表),读取第一内存管理列表内的内存地址所存储的数据,将该数据存入数据库,并释放该内存地址所对应的内存, 从第一内存管理列表中删除该内存地址。藉此,可实现第一内存管理列表与第二内存管理列表的功能的交替变换,对大量连续到来的所需存储的数据进行无间断写入与读取并存入数据库的操作,提高了数据存储效率。第二实施方式如图4A所示,本发明第二实施方式的数据存储方法包括创建缓冲区、读指针以及写指针,该读指针及写指针位于该缓冲区头部;以及通过移动所述写指针,将所需存储的数据写入所述缓冲区,同时通过移动所述读指针,读取所述缓冲区内所写入的数据,并将该数据存入数据库内。藉此,可通过写指针进行数据写入,并同时利用读指针进行数据读取及存入数据库,可实现数据的异步存储。当将其应用至图IA所示的搅拌站系统时,可实现数据的连续接收,而无需在数据存入数据库之后方才能够接收下一数据,执行效率高,占用 CPU时间片少。其中,当所述读指针和写指针移动到所述缓冲区尾部时,该读指针和写指针返回至所述缓冲区头部。藉此,可在缓冲区已存满数据的情况下,实现缓冲区的循环使用。图4B为图4A所示的数据存储方法的执行过程示意图。如图4B所示,左侧附图示出了缓冲区未被写满时的情形,右侧附图示出了缓冲区已被写满且写指针返回至缓冲区头部的情形。相应地,本发明还提供一种搅拌站通信服务器,该服务器包括数据接收装置,用于接收数据;存储装置,包含多个缓冲区;以及处理器,与所述数据接收装置和存储装置相连,用于在第一时间段,将所述数据接收装置于该时间段所接收的数据写入多个缓冲区内的第一缓冲区;以及在第二时间段,将所述数据接收装置于该时间段所接收的数据写入所述多个缓冲区内的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。其中,所述处理器还可用于在第三时间段,将该时间段所接收的数据写入所述第一缓冲区或所述多个缓冲区内的第三缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。
其中,所述处理器还可用于在将之前的时间段已写入数据的缓冲区内的数据存入所述数据库之后,释放该缓冲区。其中,所述处理器可交替执行所述针对第二时间段和第三时间段的步骤循环。相应地,本发明还提供一种搅拌站系统,该系统包括车载终端,用于发送数据; 以及上述搅拌站通信服务器。相应地,本发明还提供一种搅拌站,该搅拌站包括上述搅拌站通信服务器。该搅拌站通信服务器、搅拌站系统以及搅拌站的其他细节及优点与上述用于搅拌站通信服务器的数据存储方法相同,于此不再赘述。通过使用本发明,可向一缓冲区内写入数据,并在该数据未被存入数据库的情况下,接收下一数据,并将该数据存入另一缓冲区,与此同时从写有数据的缓冲区读取数据并将该数据存入数据库内。该过程与需在数据存入数据库之后方才能够接收下一数据的阻塞存储模式相比,将数据存入数据库这种I/O操作可由一线程独立执行,数据的接收不需要等待其他工作,从而可不断接收数据,并于此同时不断将之前所接收的数据存入数据库内, 执行效率高,占用CPU时间片少,且实现了缓冲区的动态分配及释放。将本发明应用至搅拌站系统,可明显提高来自车载终端的数据接收及存储速度,解决网络状况较差以及大量车载终端并发的情况所存在的问题。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。另外需要说明的是,在上述具体实施方式
中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
权利要求
1.一种用于搅拌站通信服务器的数据存储方法,其特征在于,该方法包括在第一时间段,接收数据,并将该时间段所接收的数据写入多个缓冲区中的第一缓冲区;以及在第二时间段,接收数据,并将该时间段所接收的数据写入所述多个缓冲区中的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。
2.根据权利要求1所述的方法,其特征在于,该方法还包括在第三时间段,将该时间段所需存储的数据写入所述第一缓冲区或所述多个缓冲区中的第三缓冲区,读取之前的时间段内已写入数据的缓冲区内的数据存入数据库。
3.根据权利要求1或2所述的方法,其特征在于,在将所述之前的时间段已写入数据的缓冲区内的数据存入所述数据库之后,释放该缓冲区。
4.根据权利要求2所述的方法,其特征在于,所述针对第二时间段和第三时间段的步骤循环交替执行。
5.一种搅拌站通信服务器,其特征在于,该服务器包括数据接收装置,用于接收来自车载终端的数据;存储装置,包含多个缓冲区;以及处理器,与所述数据接收装置和存储装置相连,用于在第一时间段,将所述数据接收装置于该时间段所接收的数据写入多个缓冲区内的第一缓冲区;以及在第二时间段,将所述数据接收装置于该时间段所接收的数据写入所述多个缓冲区内的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。
6.根据权利要求5所述的服务器,其特征在于,所述处理器还用于在第三时间段,将该时间段所接收的数据写入所述第一缓冲区或所述多个缓冲区内的第三缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。
7.根据权利要求5或6所述的服务器,其特征在于,所述处理器还用于在将之前的时间段已写入数据的缓冲区内的数据存入所述数据库之后,释放该缓冲区。
8.根据权利要求6所述的服务器,其特征在于,所述处理器交替执行所述针对第二时间段和第三时间段的步骤循环。
9.一种搅拌站系统,其特征在于,该系统包括车载终端,用于发送数据;以及搅拌站通信服务器,该搅拌站通信服务器为根据权利要求6-8中任一项权利要求所述的服务器。
10.一种搅拌站,其特征在于,该搅拌站包括权利要求6-8中任一项权利要求所述的服务器。
全文摘要
本发明公开了一种搅拌站以及用于该搅拌站的数据存储方法、服务器、系统,所述方法包括在第一时间段,接收数据,并将该时间段所接收的数据写入多个缓冲区中的第一缓冲区;以及在第二时间段,接收数据,并将该时间段所接收的数据写入所述多个缓冲区中的第二缓冲区,将之前的时间段已写入数据的缓冲区内的数据存入数据库。本发明与需在数据存入数据库之后方才能够接收下一数据的阻塞存储模式相比,将数据存入数据库这种I/O操作可由一线程独立执行,数据的接收不需要等待其他工作,从而可不断接收数据,并于此同时不断将之前所接收的数据存入数据库内,执行效率高,占用CPU时间片少。
文档编号G06F12/02GK102360338SQ20111031689
公开日2012年2月22日 申请日期2011年10月18日 优先权日2011年10月18日
发明者殷岳元, 车通, 陈兵 申请人:中联重科股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1