Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
signal
traffic-signal-platform
Commits
45ce11e6
Commit
45ce11e6
authored
Oct 28, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 灯态发送kafka
parent
6c35c9d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
0 deletions
+51
-0
pom.xml
signal-utc-service/pom.xml
+4
-0
ProducerHandler.java
...ce/src/main/java/net/wanji/utc/kafka/ProducerHandler.java
+37
-0
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+10
-0
No files found.
signal-utc-service/pom.xml
View file @
45ce11e6
...
...
@@ -26,6 +26,10 @@
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.kafka
</groupId>
<artifactId>
spring-kafka
</artifactId>
</dependency>
<dependency>
<groupId>
net.wanji
</groupId>
<artifactId>
signal-feign-service
</artifactId>
...
...
signal-utc-service/src/main/java/net/wanji/utc/kafka/ProducerHandler.java
0 → 100644
View file @
45ce11e6
package
net
.
wanji
.
utc
.
kafka
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
org.springframework.kafka.core.KafkaTemplate
;
import
org.springframework.kafka.support.SendResult
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.concurrent.ListenableFuture
;
import
javax.annotation.Resource
;
/**
* @author duanruiming
* @date 2023/08/02 16:58
*/
@Component
@Slf4j
@SuppressWarnings
(
"all"
)
public
class
ProducerHandler
{
@Resource
private
KafkaTemplate
<
String
,
String
>
kafkaTemplate
;
public
void
send
(
String
topic
,
Object
msg
)
{
Page
<
Object
>
objectPage
=
new
Page
<>();
try
{
ListenableFuture
<
SendResult
<
String
,
String
>>
future
=
this
.
kafkaTemplate
.
send
(
topic
,
JacksonUtils
.
getInstance
().
writeValueAsString
(
msg
));
future
.
addCallback
(
success
->
{},
failure
->
log
.
error
(
"消息发送失败:"
,
failure
));
}
catch
(
JsonProcessingException
e
)
{
log
.
error
(
"{}主题发送消息失败:"
,
e
);
return
;
}
}
}
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
45ce11e6
...
...
@@ -17,6 +17,7 @@ import net.wanji.feign.service.UtcDTFeignClients;
import
net.wanji.feign.service.UtcHisenseFeignClients
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.kafka.ProducerHandler
;
import
net.wanji.utc.service.runninginfo.HkLightsStatusService
;
import
net.wanji.utc.service.runninginfo.SignalStatusService
;
import
net.wanji.utc.websocket.RealTimeDataWebSocket
;
...
...
@@ -33,6 +34,7 @@ import java.time.LocalDateTime;
import
java.time.ZoneOffset
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.stream.Collectors
;
/**
* 订阅信号运行状态、告警、灯态
...
...
@@ -59,6 +61,8 @@ public class SignalStatusTask {
private
UtcDTFeignClients
utcDTFeignClients
;
@Resource
private
CrossLightsStatusHistMapper
crossLightsStatusHistMapper
;
@Autowired
private
ProducerHandler
producerHandler
;
private
static
Map
<
String
,
List
<
LightsStatusVO
>>
lightStatusCache
=
new
HashMap
<>();
private
static
final
Map
<
String
,
Integer
>
runModeTimeMap
=
new
ConcurrentHashMap
<>();
...
...
@@ -77,6 +81,7 @@ public class SignalStatusTask {
public
void
lightStatus
()
{
ConcurrentHashMap
<
String
,
RealTimeDataWebSocket
>
evenWarnWebSocketMap
=
RealTimeDataWebSocket
.
getEvenWarnWebSocketMap
();
try
{
List
<
LightsStatusVO
>
produceList
=
new
ArrayList
<>();
if
(!
evenWarnWebSocketMap
.
isEmpty
())
{
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
entry
:
evenWarnWebSocketMap
.
entrySet
())
{
commonThreadPoolExecutor
.
execute
(()
->
{
...
...
@@ -122,6 +127,7 @@ public class SignalStatusTask {
String
json
=
mapper
.
writeValueAsString
(
lightsStatusVOS
);
webSocket
.
sendInfo
(
json
,
crossIdStr
);
insertIntoHist
(
crossId
,
json
);
produceList
.
addAll
(
lightsStatusVOS
);
}
catch
(
Exception
e
)
{
log
.
error
(
"RealTimeDataWebSocket发送异常,异常信息:"
,
e
);
}
...
...
@@ -131,6 +137,10 @@ public class SignalStatusTask {
});
}
}
if
(!
CollectionUtils
.
isEmpty
(
produceList
))
{
List
<
LightsStatusVO
>
list
=
produceList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
producerHandler
.
send
(
"cross_lights_status"
,
list
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"实时推送灯态数据失败"
,
e
);
}
...
...
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