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
c30538f6
Commit
c30538f6
authored
May 28, 2025
by
duwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信号灯倒计时,加入下发控制,1秒1帧
parent
12a20911
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
1 deletion
+18
-1
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+18
-1
No files found.
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
c30538f6
...
...
@@ -128,7 +128,7 @@ public class SignalStatusTask {
/**
* 消费孪生灯态kafka数据
*/
@KafkaListener
(
topics
=
{
"WHSpatData"
},
groupId
=
"utc-whspat-consumer-0
4
"
)
@KafkaListener
(
topics
=
{
"WHSpatData"
},
groupId
=
"utc-whspat-consumer-0
5
"
)
public
void
consumeTwinSpat
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
ack
)
{
try
{
String
lightStatusJson
=
String
.
valueOf
(
record
.
value
());
...
...
@@ -206,6 +206,10 @@ public class SignalStatusTask {
}
}
// 记录每个路口最后发送灯态的时间戳,单位毫秒
private
static
final
Map
<
String
,
Long
>
lastSentTimestampMap
=
new
ConcurrentHashMap
<>();
/**
* 保存灯态数据并发送
*
...
...
@@ -232,12 +236,25 @@ public class SignalStatusTask {
continue
;
}
String
json
=
mapper
.
writeValueAsString
(
listResult2
);
// 新增:判断是否达到1秒间隔
long
now
=
System
.
currentTimeMillis
();
long
lastSent
=
lastSentTimestampMap
.
getOrDefault
(
crossId
,
0L
);
if
(
now
-
lastSent
<
1000
)
{
// 不足1秒,跳过本次推送
return
;
}
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
socketEntry
:
value
)
{
String
crossIdStr
=
socketEntry
.
getKey
();
RealTimeDataWebSocket
webSocket
=
socketEntry
.
getValue
();
// 发送数据到websocket
webSocket
.
sendInfo
(
json
,
crossIdStr
);
}
// 更新最后发送时间
lastSentTimestampMap
.
put
(
crossId
,
now
);
insertIntoHist
(
crossId
,
json
);
produceListMap
.
put
(
crossId
,
listResult2
);
}
catch
(
Exception
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