Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
device-new-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
device-new-platform
Commits
05536e97
Commit
05536e97
authored
Dec 12, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改设备更新线程实现逻辑
parent
2556a269
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
180 additions
and
5 deletions
+180
-5
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceComsumersRegisterService.java
...on/applicationservice/DeviceComsumersRegisterService.java
+5
-0
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceDownMsgService.java
...s/xhx/daemon/applicationservice/DeviceDownMsgService.java
+1
-2
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceSendThirdPartyService.java
...aemon/applicationservice/DeviceSendThirdPartyService.java
+1
-2
device-manager/src/main/java/com/mortals/xhx/thread/DeviceDownMsgThread.java
...main/java/com/mortals/xhx/thread/DeviceDownMsgThread.java
+107
-0
device-manager/src/main/java/com/mortals/xhx/thread/DeviceUpdateComsumerThread.java
...va/com/mortals/xhx/thread/DeviceUpdateComsumerThread.java
+1
-1
device-manager/src/main/java/com/mortals/xhx/thread/SendThirdPartyThread.java
...ain/java/com/mortals/xhx/thread/SendThirdPartyThread.java
+65
-0
No files found.
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceComsumersRegisterService.java
View file @
05536e97
...
@@ -11,6 +11,7 @@ import com.mortals.xhx.module.device.service.DeviceService;
...
@@ -11,6 +11,7 @@ import com.mortals.xhx.module.device.service.DeviceService;
import
com.mortals.xhx.module.platform.service.PlatformService
;
import
com.mortals.xhx.module.platform.service.PlatformService
;
import
com.mortals.xhx.module.product.service.ProductService
;
import
com.mortals.xhx.module.product.service.ProductService
;
import
com.mortals.xhx.thread.DeviceUpdateComsumerThread
;
import
com.mortals.xhx.thread.DeviceUpdateComsumerThread
;
import
com.mortals.xhx.thread.SendThirdPartyThread
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.rabbit.listener.DirectMessageListenerContainer
;
import
org.springframework.amqp.rabbit.listener.DirectMessageListenerContainer
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -43,6 +44,8 @@ public class DeviceComsumersRegisterService implements IApplicationStartedServic
...
@@ -43,6 +44,8 @@ public class DeviceComsumersRegisterService implements IApplicationStartedServic
private
DirectDynamicListener
directDynamicListener
;
private
DirectDynamicListener
directDynamicListener
;
@Autowired
@Autowired
private
DeviceUpdateComsumerThread
deviceUpdateComsumerThread
;
private
DeviceUpdateComsumerThread
deviceUpdateComsumerThread
;
@Autowired
private
SendThirdPartyThread
sendThirdPartyThread
;
@Override
@Override
public
void
start
()
{
public
void
start
()
{
...
@@ -50,6 +53,8 @@ public class DeviceComsumersRegisterService implements IApplicationStartedServic
...
@@ -50,6 +53,8 @@ public class DeviceComsumersRegisterService implements IApplicationStartedServic
sendTaskThreadPool
.
init
(
20
);
sendTaskThreadPool
.
init
(
20
);
log
.
info
(
"设备更新消费线程启动"
);
log
.
info
(
"设备更新消费线程启动"
);
deviceUpdateComsumerThread
.
start
();
deviceUpdateComsumerThread
.
start
();
log
.
info
(
"设备更新消费线程启动"
);
sendThirdPartyThread
.
start
();
log
.
info
(
"服务端消息队列初始化服务开始.."
);
log
.
info
(
"服务端消息队列初始化服务开始.."
);
deviceService
.
find
(
new
DeviceEntity
())
deviceService
.
find
(
new
DeviceEntity
())
...
...
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceDownMsgService.java
View file @
05536e97
...
@@ -20,7 +20,6 @@ import com.mortals.xhx.queue.TbQueueMsg;
...
@@ -20,7 +20,6 @@ import com.mortals.xhx.queue.TbQueueMsg;
import
com.mortals.xhx.queue.TbQueueMsgHeaders
;
import
com.mortals.xhx.queue.TbQueueMsgHeaders
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -33,7 +32,7 @@ import static com.mortals.xhx.common.key.RedisKey.KEY_DEVICE_DOWN_MSG_QUEUE;
...
@@ -33,7 +32,7 @@ import static com.mortals.xhx.common.key.RedisKey.KEY_DEVICE_DOWN_MSG_QUEUE;
* @author: zxfei
* @author: zxfei
* @date: 2023/11/8 23:45
* @date: 2023/11/8 23:45
*/
*/
@Component
//
@Component
@Slf4j
@Slf4j
public
class
DeviceDownMsgService
implements
IApplicationStartedService
{
public
class
DeviceDownMsgService
implements
IApplicationStartedService
{
...
...
device-manager/src/main/java/com/mortals/xhx/daemon/applicationservice/DeviceSendThirdPartyService.java
View file @
05536e97
...
@@ -11,14 +11,13 @@ import com.mortals.xhx.common.pdu.DeviceReq;
...
@@ -11,14 +11,13 @@ import com.mortals.xhx.common.pdu.DeviceReq;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
PARAM_SERVER_PHP_IN_HTTP_URL
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
PARAM_SERVER_PHP_IN_HTTP_URL
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
SEND_INTEVEL
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
SEND_INTEVEL
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_DEVICE_THIRDPARTY_QUEUE
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_DEVICE_THIRDPARTY_QUEUE
;
@Component
//
@Component
@Slf4j
@Slf4j
public
class
DeviceSendThirdPartyService
implements
IApplicationStartedService
{
public
class
DeviceSendThirdPartyService
implements
IApplicationStartedService
{
...
...
device-manager/src/main/java/com/mortals/xhx/thread/DeviceDownMsgThread.java
0 → 100644
View file @
05536e97
package
com.mortals.xhx.thread
;
import
cn.hutool.core.util.IdUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.util.AbstractThread
;
import
com.mortals.xhx.base.system.message.impl.MessageProducer
;
import
com.mortals.xhx.busiz.req.DeviceMsgReq
;
import
com.mortals.xhx.common.code.LogTypeEnum
;
import
com.mortals.xhx.common.key.Constant
;
import
com.mortals.xhx.common.key.QueueKey
;
import
com.mortals.xhx.common.model.DefaultTbQueueMsgHeaders
;
import
com.mortals.xhx.common.model.MessageHeader
;
import
com.mortals.xhx.module.device.model.DeviceEntity
;
import
com.mortals.xhx.module.device.model.DeviceLogEntity
;
import
com.mortals.xhx.module.device.service.DeviceLogService
;
import
com.mortals.xhx.module.device.service.DeviceService
;
import
com.mortals.xhx.queue.DefaultTbQueueMsg
;
import
com.mortals.xhx.queue.TbQueueMsg
;
import
com.mortals.xhx.queue.TbQueueMsgHeaders
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Date
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_DEVICE_DOWN_MSG_QUEUE
;
/**
* 发送第三方服务线程
*
* @author zxfei
*/
@Slf4j
@Service
@Order
(
value
=
3
)
public
class
DeviceDownMsgThread
extends
AbstractThread
{
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
DeviceService
deviceService
;
@Autowired
private
DeviceLogService
deviceLogService
;
@Autowired
private
MessageProducer
messageProducer
;
@Override
protected
int
getSleepTime
()
{
return
1000
;
}
@Override
protected
void
process
()
{
log
.
info
(
"update device thread process"
);
DeviceMsgReq
deviceMsgReq
=
cacheService
.
blpop
(
KEY_DEVICE_DOWN_MSG_QUEUE
,
10
,
DeviceMsgReq
.
class
);
if
(!
ObjectUtils
.
isEmpty
(
deviceMsgReq
))
{
log
.
info
(
"下发消息:{}"
,
deviceMsgReq
.
getDeviceCode
());
//根据设备编码查询设备
DeviceEntity
deviceEntity
=
null
;
try
{
deviceEntity
=
deviceService
.
getExtCache
(
deviceMsgReq
.
getDeviceCode
());
}
catch
(
Exception
e
)
{
log
.
error
(
"redis 获取设备异常!"
,
e
);
}
if
(!
ObjectUtils
.
isEmpty
(
deviceEntity
))
{
TbQueueMsgHeaders
header
=
new
DefaultTbQueueMsgHeaders
();
header
.
put
(
MessageHeader
.
MESSAGETYPE
,
deviceMsgReq
.
getMessageType
());
header
.
put
(
MessageHeader
.
DEVICECODE
,
deviceMsgReq
.
getDeviceCode
());
header
.
put
(
MessageHeader
.
TIMESTAMP
,
deviceMsgReq
.
getTimestamp
().
toString
());
TbQueueMsg
queueMsg
=
new
DefaultTbQueueMsg
(
IdUtil
.
fastUUID
(),
deviceMsgReq
.
getData
(),
header
);
messageProducer
.
sendMsg
(
QueueKey
.
DEFAULT_EXCHANGE
,
Constant
.
DOWN_TOPIC
+
deviceEntity
.
getDeviceCode
(),
JSON
.
toJSONString
(
queueMsg
));
DeviceLogEntity
deviceLogEntity
=
new
DeviceLogEntity
();
deviceLogEntity
.
initAttrValue
();
deviceLogEntity
.
setTraceID
(
IdUtil
.
fastSimpleUUID
());
deviceLogEntity
.
setSiteId
(
deviceEntity
.
getSiteId
());
deviceLogEntity
.
setDeviceId
(
deviceEntity
.
getId
());
deviceLogEntity
.
setDeviceName
(
deviceEntity
.
getDeviceName
());
deviceLogEntity
.
setDeviceCode
(
deviceEntity
.
getDeviceCode
());
deviceLogEntity
.
setMessageHead
(
deviceMsgReq
.
getMessageType
());
deviceLogEntity
.
setContent
(
deviceMsgReq
.
getData
());
deviceLogEntity
.
setLogType
(
LogTypeEnum
.
下发服务
.
getValue
());
deviceLogEntity
.
setCreateUserId
(
1L
);
deviceLogEntity
.
setCreateTime
(
new
Date
());
deviceLogService
.
save
(
deviceLogEntity
,
null
);
}
else
{
log
.
info
(
"未找到设备,deviceCode:{}"
,
deviceMsgReq
.
getDeviceCode
());
}
}
}
@Override
protected
void
threadClosed
()
{
// TODO Auto-generated method stub
super
.
close
();
}
}
device-manager/src/main/java/com/mortals/xhx/thread/DeviceUpdateComsumerThread.java
View file @
05536e97
...
@@ -37,7 +37,7 @@ public class DeviceUpdateComsumerThread extends AbstractThread {
...
@@ -37,7 +37,7 @@ public class DeviceUpdateComsumerThread extends AbstractThread {
}
}
@Override
@Override
protected
void
process
()
throws
Exception
{
protected
void
process
()
{
log
.
info
(
"update device thread process"
);
log
.
info
(
"update device thread process"
);
List
<
DeviceEntity
>
waitUpdateDeviceList
=
new
ArrayList
<>();
List
<
DeviceEntity
>
waitUpdateDeviceList
=
new
ArrayList
<>();
while
(
true
)
{
while
(
true
)
{
...
...
device-manager/src/main/java/com/mortals/xhx/thread/SendThirdPartyThread.java
0 → 100644
View file @
05536e97
package
com.mortals.xhx.thread
;
import
cn.hutool.core.net.url.UrlBuilder
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.ap.GlobalSysInfo
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.util.AbstractThread
;
import
com.mortals.xhx.base.system.message.MessageService
;
import
com.mortals.xhx.busiz.rsp.ApiResp
;
import
com.mortals.xhx.common.pdu.DeviceReq
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
Constant
.
PARAM_SERVER_PHP_IN_HTTP_URL
;
import
static
com
.
mortals
.
xhx
.
common
.
key
.
RedisKey
.
KEY_DEVICE_THIRDPARTY_QUEUE
;
/**
* 发送第三方服务线程
*
* @author zxfei
*/
@Slf4j
@Service
@Order
(
value
=
2
)
public
class
SendThirdPartyThread
extends
AbstractThread
{
@Autowired
private
ICacheService
cacheService
;
@Autowired
private
MessageService
messageService
;
@Value
(
"${thirdPartyPath:/inter/device/deviceIn}"
)
public
String
thirdPartyPath
;
@Override
protected
int
getSleepTime
()
{
return
1000
;
}
@Override
protected
void
process
()
{
log
.
info
(
"SendThirdPartyThread process"
);
DeviceReq
deviceReq
=
cacheService
.
blpop
(
KEY_DEVICE_THIRDPARTY_QUEUE
,
10
,
DeviceReq
.
class
);
if
(!
ObjectUtils
.
isEmpty
(
deviceReq
))
{
String
phpInUrl
=
GlobalSysInfo
.
getParamValue
(
PARAM_SERVER_PHP_IN_HTTP_URL
,
"http://127.0.0.1:11078/zwfw_api"
);
ApiResp
<
String
>
resp
=
messageService
.
sendThirdParty
(
UrlBuilder
.
of
(
phpInUrl
).
addPath
(
thirdPartyPath
).
build
(),
deviceReq
);
log
.
info
(
"sendThirty resp ==>{}"
,
JSON
.
toJSONString
(
resp
));
}
}
@Override
protected
void
threadClosed
()
{
// TODO Auto-generated method stub
super
.
close
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment