From b726dc97538b7d4ba71fd06c14161017dd67c2b7 Mon Sep 17 00:00:00 2001
From: xubinbin <1323875150@qq.com>
Date: 星期三, 10 五月 2023 15:38:22 +0800
Subject: [PATCH] "@schedule"是Spring框架提供的一种定时任务执行机制,默认情况下它是单线程执行,项目中多次使用fixedRate按指定频率执行任务(不管前面任务是否已经完成),在同时执行多个定时任务时可能会出现阻塞和性能问题,为了解决这种单线程瓶颈问题,将定时任务的执行机制改为支持多线程
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 19 +++----------------
1 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
index 0c8c3f6..3e1c673 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
@@ -80,21 +80,7 @@
public void process(RequestEvent evt) {
try {
RequestEventExt evtExt = (RequestEventExt) evt;
- String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort();
-// MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
-// QueryExp protocol = Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"));
-//// ObjectName name = new ObjectName("*:type=Connector,*");
-// ObjectName name = new ObjectName("*:*");
-// Set<ObjectName> objectNames = beanServer.queryNames(name, protocol);
-// for (ObjectName objectName : objectNames) {
-// String catalina = objectName.getDomain();
-// if ("Catalina".equals(catalina)) {
-// System.out.println(objectName.getKeyProperty("port"));
-// }
-// }
-
-// System.out.println(ServiceInfo.getServerPort());
SIPRequest request = (SIPRequest)evt.getRequest();
Response response = null;
boolean passwordCorrect = false;
@@ -104,12 +90,13 @@
AddressImpl address = (AddressImpl) fromHeader.getAddress();
SipUri uri = (SipUri) address.getURI();
String deviceId = uri.getUser();
- logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 寮�濮嬪鐞�: {}", deviceId, requestAddress);
+
Device device = deviceService.getDevice(deviceId);
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
userSetting.getSipUseSourceIpAsRemoteAddress());
-
+ String requestAddress = remoteAddressInfo.getIp() + ":" + remoteAddressInfo.getPort();
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 寮�濮嬪鐞�: {}", deviceId, requestAddress);
if (device != null &&
device.getSipTransactionInfo() != null &&
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
--
Gitblit v1.8.0