| | |
| | | @Component |
| | | public class RecordInfoResponseMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler { |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(RecordInfoResponseMessageHandler.class); |
| | | private final Logger logger = LoggerFactory.getLogger(RecordInfoResponseMessageHandler.class); |
| | | private final String cmdType = "RecordInfo"; |
| | | |
| | | private ConcurrentLinkedQueue<HandlerCatchData> taskQueue = new ConcurrentLinkedQueue<>(); |
| | |
| | | if (!taskQueueHandlerRun) { |
| | | taskQueueHandlerRun = true; |
| | | taskExecutor.execute(()->{ |
| | | try { |
| | | while (!taskQueue.isEmpty()) { |
| | | while (!taskQueue.isEmpty()) { |
| | | try { |
| | | HandlerCatchData take = taskQueue.poll(); |
| | | Element rootElementForCharset = getRootElement(take.getEvt(), take.getDevice().getCharset()); |
| | | if (rootElement == null) { |
| | | logger.warn("[ 国标录像 ] content cannot be null, {}", evt.getRequest()); |
| | | continue; |
| | | } |
| | | String sn = getText(rootElementForCharset, "SN"); |
| | | String channelId = getText(rootElementForCharset, "DeviceID"); |
| | | RecordInfo recordInfo = new RecordInfo(); |
| | |
| | | releaseRequest(take.getDevice().getDeviceId(), sn); |
| | | } |
| | | } |
| | | } catch (DocumentException e) { |
| | | throw new RuntimeException(e); |
| | | } finally { |
| | | taskQueueHandlerRun = false; |
| | | } |
| | | taskQueueHandlerRun = false; |
| | | }catch (DocumentException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | }); |
| | | } |
| | |
| | | e.printStackTrace(); |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | }finally { |
| | | taskQueueHandlerRun = false; |
| | | } |
| | | } |
| | | |