Sample upate 方法的注意点
来源:互联网 发布:淘宝网修身连衣裙 编辑:程序博客网 时间:2024/06/15 01:58
Sample.update()方法向rrd中更新(插入)数据,但是这个插入数据的时候会检查新插入数据的时间戳是否比上次数据的时间戳大,如果小的话就不允许。
//创建rrd RrdDef rrdDef = new RrdDef(rrdFile); // rrdDef.addDatasource("value", DsType.DERIVE, 600, 0, Double.NaN); rrdDef.addArchive(ConsolFun.AVERAGE,0.5,1,300); rrdDef.addArchive(ConsolFun.MIN,0.5,12,300); rrdDef.addArchive(ConsolFun.MAX,0.5,12,300); rrdDef.addDatasource(new DsDef("value", DsType.DERIVE, 100000, 0, 1)); //RrdDb rrdDb = new RrdDb(rrdDef, factory); RrdDb rrdDb = new RrdDb(rrdDef); long end=0L; long start=0L; int i = 0; while(cursor.hasNext()){ DBObject object = cursor.next(); System.out.println(object); if(object.get("time")!=null){ Long time = (Long) object.get("time"); System.out.println(i+": "+time); Double value = (Double) object.get("value"); Sample sample = rrdDb.createSample(time+1); sample.setValue("value", value);System.out.println("time:"+time+"value:"+value); sample.update(); if(i==0){ start = time; } i++; } } rrdDb.close();上面创建RrdDef的时候,如果没有加入起始时间戳,后面update的时候插入第一条数据的时候就把当前时间作为上一次的时间戳,这往往比新插入的时间戳大,因此不允许。会报错:
Exception in thread "main" java.lang.IllegalArgumentException: Bad sample time: 1341991059. Last update time was 1342000665, at least one second step is required
at org.rrd4j.core.RrdDb.store(RrdDb.java:553)
at org.rrd4j.core.Sample.update(Sample.java:197)
at com.chinanetcenter.practise.RRD4JDraw.main(RRD4JDraw.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
在创建RrdDef的时候:
RrdDef rrdDef = new RrdDef(rrdFile,1341991058L,100000L);
就是要传入真正的第一条数据的时间戳,这样才不会出现问题
- Sample upate 方法的注意点
- toArray()方法的注意点
- Jquery get方法的注意点
- 【jQuery】$.data()方法的注意点
- String类的substring方法注意点
- java方法的一些设计注意点
- Java 中split 方法的注意点
- List 的remove方法注意点
- Hibernate中update方法的注意点
- Java的Stirng.split方法注意点
- List 的 subList方法注意点
- springsecurity-sample中hsqldb的使用注意
- Scanner对象的nextInt()方法的注意点
- 关于js的toFixed方法的使用注意点
- Python字典方法注意点
- @override方法重写注意点
- onSaveInstanceState()方法使用注意点
- jQuery.inArray方法注意点
- winform技巧—窗体抖动代码
- apache虚拟目录和虚拟主机的设置
- 递归与循环的开销比较,高精度时间函数
- chunked and gzip
- Powershell invokes FTP scripts
- Sample upate 方法的注意点
- 基于MINA框架快速开发网络应用程序
- Oracle中sequence 的学习及工作使用
- Android动画总结!!!!
- JSON入门指南
- 关闭IE的文档类型自动判断功能
- javascript日期操作—整理(一)
- 純潔のナルシズム
- spring quartz 配置(定时器)