package com.cnbm.influx.controller; import com.cnbm.common.spc.util.DataUtils; import com.cnbm.influx.config.InfluxClient; import com.cnbm.influx.param.PageInfo; import com.cnbm.influx.param.QueryDataParam; import com.cnbm.influx.param.Range; import com.cnbm.influx.param.Tag; import com.cnbm.influx.template.Event; import com.influxdb.client.domain.WritePrecision; import com.influxdb.client.write.Point; import com.influxdb.query.FluxRecord; import com.influxdb.query.FluxTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Random; @RestController @RequestMapping("/influx") public class S7DemoController { private static final Logger logger = LoggerFactory.getLogger(S7DemoController.class); @PostMapping("/insertBatch") public void insertBatch() throws InterruptedException { List list = new ArrayList<>(); Random r = new Random(); for(int i=0;i<999;i++){ Thread.sleep(10); Event event = new Event(); event.setTime(Instant.now()); event.setTransationId("asas"+i); event.setArgName("LTWeight"); Double d = r.nextDouble() * 2.5 + 66; event.setArgValue(d); list.add(event); } InfluxClient.Client.batchInsert(list,"Weight"); } @PostMapping("/insertBatchJYD") public void insertBatchJYD() throws InterruptedException { List list = new ArrayList<>(); Random r = new Random(); for(int j=0;j<10;j++){ for(int i=0;i<99;i++){ Thread.sleep(10); Event event = new Event(); event.setTime(Instant.now()); event.setTransationId("asas"+i); event.setArgName("LTWeight"); Double d = r.nextDouble() * 2.5 + 66; event.setInspectionSheetId(j+""); event.setArgValue(d); list.add(event); } } InfluxClient.Client.batchInsert(list,"Weight"); } /** * 测试连接是否正常 * * @return * true 服务正常健康 * false 异常 */ @PostMapping("/ping") public void ping() throws InterruptedException { boolean ping = InfluxClient.Client.ping(); System.out.println(ping); } @PostMapping("/query") public void query() throws InterruptedException { List list = new ArrayList<>(); QueryDataParam queryDataParam = new QueryDataParam(); queryDataParam.setBucket("qgs-bucket"); queryDataParam.setMeasurement("ASProcessCompleteEventAS"); List dropNames = new ArrayList<>(); dropNames.add("transationId"); dropNames.add("inspectionSheetId"); queryDataParam.setDropedTagNames(dropNames); queryDataParam.setTag(new Tag("argName","arg6")); queryDataParam.setRange(new Range(DataUtils.getBeforeDate(10).toInstant(),Instant.now())); queryDataParam.setPageInfo(new PageInfo(1,10)); List query = InfluxClient.Client.query(queryDataParam); for (FluxTable fluxTable : query) { List records = fluxTable.getRecords(); for (FluxRecord fluxRecord : records) { System.out.println("value: " + fluxRecord.getValueByKey("_value")); } } System.out.println(); } public static void main(String[] args) { List list = new ArrayList<>(); QueryDataParam queryDataParam = new QueryDataParam(); queryDataParam.setBucket("qgs-bucket"); queryDataParam.setMeasurement("ASProcessCompleteEventAS"); List dropNames = new ArrayList<>(); dropNames.add("transationId"); dropNames.add("inspectionSheetId"); queryDataParam.setDropedTagNames(dropNames); queryDataParam.setTag(new Tag("argName","arg7")); queryDataParam.setRange(new Range(DataUtils.getBeforeDate(10).toInstant(),Instant.now())); queryDataParam.setPageInfo(new PageInfo(2,10)); List query = InfluxClient.Client.query(queryDataParam); for (FluxTable fluxTable : query) { List records = fluxTable.getRecords(); for (FluxRecord fluxRecord : records) { System.out.println("value: " + fluxRecord.getValueByKey("_value")); } } } public Point insert(Event event, String measurement){ Point point = Point.measurement(measurement) .addTag("transationId", event.getTransationId()) .addTag("argName", event.getArgName()) .addField("argValue", event.getArgValue()) .time(event.getTime().toEpochMilli(), WritePrecision.MS); return point; } @PostMapping("/insert") public void insert() throws InterruptedException { Event event = new Event(); event.setTime(Instant.now()); event.setTransationId("asasd11"); event.setArgName("argName11"); event.setArgValue(900001d); Point asProcessCompleteEvent = insert(event, "ASProcessCompleteEvent"); InfluxClient.Client.insert(event,"ASProcessCompleteEvent"); } }