|  |  | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; | 
 |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 
 |  |  |  | 
 |  |  | import java.util.UUID; | 
 |  |  |  | 
 |  |  | @Api(tags = "国标录像") | 
 |  |  | @CrossOrigin | 
 |  |  | @RestController | 
 |  |  | 
 |  |  |       Device device = storager.queryVideoDevice(deviceId); | 
 |  |  |       cmder.recordInfoQuery(device, channelId, startTime, endTime); | 
 |  |  |       // 指定超时时间 1分钟30秒 | 
 |  |  |       DeferredResult<ResponseEntity<RecordInfo>> result = new DeferredResult<ResponseEntity<RecordInfo>>(90*1000L); | 
 |  |  |       DeferredResult<ResponseEntity<RecordInfo>> result = new DeferredResult<>(90*1000L); | 
 |  |  |       String uuid = UUID.randomUUID().toString(); | 
 |  |  |       String key = DeferredResultHolder.CALLBACK_CMD_RECORDINFO + deviceId + channelId; | 
 |  |  |       // 录像查询以channelId作为deviceId查询 | 
 |  |  |       resultHolder.put(DeferredResultHolder.CALLBACK_CMD_RECORDINFO+channelId, result); | 
 |  |  |       resultHolder.put(key, uuid, result); | 
 |  |  |       result.onTimeout(()->{ | 
 |  |  |          RequestMessage msg = new RequestMessage(); | 
 |  |  |          msg.setDeviceId(deviceId); | 
 |  |  |          msg.setType(DeferredResultHolder.CALLBACK_CMD_RECORDINFO); | 
 |  |  |          msg.setId(uuid); | 
 |  |  |          msg.setKey(key); | 
 |  |  |          msg.setData("timeout"); | 
 |  |  |          resultHolder.invokeResult(msg); | 
 |  |  |       }); |