【发布时间】:2018-09-28 09:24:31
【问题描述】:
我需要能够存储来自生产机器的传入数据以对其执行一些计算。我从 API 接收数据,它看起来像这样:
[
{
"datasetId":23
"timestamp":1538125706336,
"machineData":[
{
"machineId":<UUID>,
"type":"PLASTIC_INJECTOR",
"data":[
"temperature":30,
"pressure":32
]
},
...
]
},
...
]
machineData 数组包含多种不同类型的机器,它们发出不同的测量值。有些有温度,有些有温度,例如“消耗的水量”。此外,一些机器由于维护等原因处于离线状态,因此阵列并不总是包含相同的机器。我的问题是如何将这些信息存储在对象中。
我的想法是这样的:
public class MachineData{
private long datasetId,
private long timestamp;
private Map<UUID, MachineDataEntry> dataPerMachine;
}
public class MachineDataEntry{
private Map<String, float> measurements;
}
所以 MachineDataEntry 表示“machineData”中每台机器的“data”数组的内容。
我对其进行了测试,它可以在开发中使用,但我担心一旦我需要处理超过 10000 个条目的 API 响应,我可能会遇到性能问题。
有没有更智能的方法来做到这一点?
【问题讨论】:
-
您是否总是需要在一个回复中包含所有这些条目?无论您如何构建这些条目,包含这么多条目的响应都可能导致性能问题。
-
是的,我需要所有这些数据,而且我无法编辑 api 以仅提供一小部分,它遥不可及
标签: java