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
edbff274
Commit
edbff274
authored
Nov 24, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] redis处理
parent
f8141189
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
456 additions
and
56 deletions
+456
-56
RedisConfig.java
...rvice/src/main/java/net/wanji/opt/common/RedisConfig.java
+107
-0
RedisUtils.java
...ervice/src/main/java/net/wanji/opt/common/RedisUtils.java
+320
-29
ConsumerHandler.java
...ce/src/main/java/net/wanji/opt/kafka/ConsumerHandler.java
+4
-4
StrategyGreenBeltController.java
...opt/synthesis/controller/StrategyGreenBeltController.java
+6
-17
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+0
-4
GreenBeltChartVO.java
...vice/src/main/java/net/wanji/opt/vo/GreenBeltChartVO.java
+18
-1
bootstrap-docker.yaml
...optimize-service/src/main/resources/bootstrap-docker.yaml
+1
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/common/RedisConfig.java
0 → 100644
View file @
edbff274
package
net
.
wanji
.
opt
.
common
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.fasterxml.jackson.annotation.PropertyAccessor
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.cache.annotation.CachingConfigurerSupport
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.cache.RedisCacheConfiguration
;
import
org.springframework.data.redis.cache.RedisCacheManager
;
import
org.springframework.data.redis.cache.RedisCacheWriter
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
redis.clients.jedis.JedisPool
;
import
redis.clients.jedis.JedisPoolConfig
;
@Configuration
@EnableAutoConfiguration
public
class
RedisConfig
extends
CachingConfigurerSupport
{
@Value
(
"${spring.redis.host}"
)
private
String
host
;
@Value
(
"${spring.redis.port}"
)
private
int
port
;
@Value
(
"${spring.redis.password}"
)
private
String
password
;
@Value
(
"${spring.redis.database}"
)
private
int
database
;
@Value
(
"${spring.redis.timeout}"
)
private
int
timeout
;
@Value
(
"${spring.redis.jedis.pool.max-idle}"
)
private
int
maxIdle
;
@Value
(
"${spring.redis.jedis.pool.max-active}"
)
private
int
maxTotal
;
@Value
(
"${spring.redis.jedis.pool.min-idle}"
)
private
int
minIdle
;
@Value
(
"${spring.redis.jedis.pool.max-wait}"
)
private
long
maxWaitMillis
;
/**
* 获取Jedis连接工厂
* <p>用于创建Jedis对象</p>
* @return JedisPool
*/
@Bean
public
JedisPool
redisPoolFactory
()
{
JedisPoolConfig
jedisPoolConfig
=
new
JedisPoolConfig
();
jedisPoolConfig
.
setMaxTotal
(
maxTotal
);
jedisPoolConfig
.
setMaxIdle
(
maxIdle
);
jedisPoolConfig
.
setMaxWaitMillis
(
maxWaitMillis
);
jedisPoolConfig
.
setMinIdle
(
minIdle
);
jedisPoolConfig
.
setTestOnBorrow
(
false
);
jedisPoolConfig
.
setTestOnReturn
(
false
);
return
new
JedisPool
(
jedisPoolConfig
,
host
,
port
,
timeout
,
password
,
database
);
}
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
connectionFactory
)
{
RedisTemplate
<
String
,
Object
>
template
=
new
RedisTemplate
<>();
template
.
setConnectionFactory
(
connectionFactory
);
// 使用 Jackson2JsonRedisSerializer 替代默认的 JDK 序列化器
Jackson2JsonRedisSerializer
<
Object
>
serializer
=
new
Jackson2JsonRedisSerializer
<>(
Object
.
class
);
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
setVisibility
(
PropertyAccessor
.
ALL
,
JsonAutoDetect
.
Visibility
.
ANY
);
objectMapper
.
activateDefaultTyping
(
LaissezFaireSubTypeValidator
.
instance
,
ObjectMapper
.
DefaultTyping
.
NON_FINAL
,
JsonTypeInfo
.
As
.
WRAPPER_ARRAY
);
serializer
.
setObjectMapper
(
objectMapper
);
template
.
setKeySerializer
(
new
StringRedisSerializer
());
// 设置 Key 的序列化器
template
.
setValueSerializer
(
serializer
);
// 设置 Value 的序列化器
template
.
setHashKeySerializer
(
new
StringRedisSerializer
());
template
.
setHashValueSerializer
(
serializer
);
template
.
afterPropertiesSet
();
return
template
;
}
/**
* 选择redis作为默认缓存工具
* @param redisConnectionFactory
* @return
*/
@Bean
public
CacheManager
cacheManager
(
RedisConnectionFactory
redisConnectionFactory
)
{
RedisCacheConfiguration
redisCacheConfiguration
=
RedisCacheConfiguration
.
defaultCacheConfig
();
return
RedisCacheManager
.
builder
(
RedisCacheWriter
.
nonLockingRedisCacheWriter
(
redisConnectionFactory
))
.
cacheDefaults
(
redisCacheConfiguration
).
build
();
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/common/RedisUtils.java
View file @
edbff274
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/kafka/ConsumerHandler.java
View file @
edbff274
...
@@ -45,7 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -45,7 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
private
final
HoloForeignDeviceMapper
holoForeignDeviceMapper
;
private
final
HoloForeignDeviceMapper
holoForeignDeviceMapper
;
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_lane_data"
})
//
@KafkaListener(topics = {"cross_real_time_lane_data"})
public
void
receiveCrossRealTimeLaneData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeLaneData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeLaneData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeLaneData
=
String
.
valueOf
(
record
.
value
());
...
@@ -81,7 +81,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -81,7 +81,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_data"
})
//
@KafkaListener(topics = {"cross_real_time_data"})
public
void
receiveCrossRealTimeData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeData
=
String
.
valueOf
(
record
.
value
());
...
@@ -130,7 +130,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -130,7 +130,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_dir_data"
})
//
@KafkaListener(topics = {"cross_real_time_dir_data"})
public
void
receiveCrossRealTimeDirData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeDirData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeDirData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeDirData
=
String
.
valueOf
(
record
.
value
());
...
@@ -155,7 +155,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -155,7 +155,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_turn_data"
})
//
@KafkaListener(topics = {"cross_real_time_turn_data"})
public
void
receiveCrossRealTimeTurnData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeTurnData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeTurnData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeTurnData
=
String
.
valueOf
(
record
.
value
());
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/controller/StrategyGreenBeltController.java
View file @
edbff274
...
@@ -11,10 +11,7 @@ import net.wanji.opt.common.RedisUtils;
...
@@ -11,10 +11,7 @@ import net.wanji.opt.common.RedisUtils;
import
net.wanji.opt.service.GreenBeltInfoService
;
import
net.wanji.opt.service.GreenBeltInfoService
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.ws.rs.core.MediaType
;
import
javax.ws.rs.core.MediaType
;
...
@@ -36,19 +33,12 @@ public class StrategyGreenBeltController {
...
@@ -36,19 +33,12 @@ public class StrategyGreenBeltController {
@ApiOperation
(
value
=
"绿波时序图数据查询"
,
notes
=
"绿波时序图数据查询"
,
response
=
JsonViewObject
.
class
,
@ApiOperation
(
value
=
"绿波时序图数据查询"
,
notes
=
"绿波时序图数据查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/greenBletData"
,
@GetMapping
(
value
=
"/greenBletData"
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
})
public
JsonViewObject
greenBletData
(
@RequestBody
String
greenId
)
throws
Exception
{
public
JsonViewObject
greenBletData
(
String
greenId
)
throws
Exception
{
// todo 测试
GreenBeltInfoVO
greenBeltInfoVO1
=
greenBeltInfoService
.
convertData
(
null
);
greenBeltInfoService
.
save
(
greenBeltInfoVO1
);
String
key
=
Constants
.
GREEN_ID_OPT_KEY
.
concat
(
greenId
);
String
key
=
Constants
.
GREEN_ID_OPT_KEY
.
concat
(
greenId
);
redisUtils
.
set
(
key
,
JacksonUtils
.
getInstance
().
writeValueAsString
(
greenBeltInfoVO1
));
Object
obj
=
redisUtils
.
get
(
key
);
Object
obj
=
redisUtils
.
get
(
key
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
GreenBeltInfoVO
greenBeltInfoVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
),
GreenBeltInfoVO
.
class
);
GreenBeltInfoVO
greenBeltInfoVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
),
GreenBeltInfoVO
.
class
);
...
@@ -57,16 +47,15 @@ public class StrategyGreenBeltController {
...
@@ -57,16 +47,15 @@ public class StrategyGreenBeltController {
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/greenBeltChart"
,
@GetMapping
(
value
=
"/greenBeltChart"
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
})
public
JsonViewObject
greenBeltChart
(
@RequestBody
String
greenId
)
throws
Exception
{
public
JsonViewObject
greenBeltChart
(
String
greenId
)
throws
Exception
{
String
key
=
Constants
.
GREEN_ID_OPT_CHART_KEY
.
concat
(
greenId
);
String
key
=
Constants
.
GREEN_ID_OPT_CHART_KEY
.
concat
(
greenId
);
Object
obj
=
redisUtils
.
get
(
key
);
Object
obj
=
redisUtils
.
get
(
key
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
GreenBeltChartVO
greenBeltChartVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
)
,
GreenBeltChartVO
.
class
);
GreenBeltChartVO
greenBeltChartVO
=
JacksonUtils
.
getInstance
().
readValue
(
(
String
)
obj
,
GreenBeltChartVO
.
class
);
return
jsonViewObject
.
success
(
greenBeltChartVO
);
return
jsonViewObject
.
success
(
greenBeltChartVO
);
}
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
deleted
100644 → 0
View file @
f8141189
package
net
.
wanji
.
opt
.
task
;
public
class
inducesMonitorTask
{
}
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenBeltChartVO.java
View file @
edbff274
package
net
.
wanji
.
opt
.
vo
;
package
net
.
wanji
.
opt
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -15,13 +19,26 @@ import java.util.Map;
...
@@ -15,13 +19,26 @@ import java.util.Map;
@Data
@Data
@ApiModel
(
value
=
"GreenBeltChartVO"
,
description
=
"绿波时序图返回实体"
)
@ApiModel
(
value
=
"GreenBeltChartVO"
,
description
=
"绿波时序图返回实体"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
GreenBeltChartVO
{
public
class
GreenBeltChartVO
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"绿波路口红灯范围"
)
@ApiModelProperty
(
"绿波路口红灯范围"
)
Map
<
String
,
List
<
Double
[]>>
crossRedTimesMap
;
@JsonProperty
(
"crossRedTimesMap"
)
Map
<
String
,
List
<
List
<
Double
>>>
crossRedTimesMap
;
@ApiModelProperty
(
"反向绿波路口红灯范围"
)
@JsonProperty
(
"backCrossRedTimesMap"
)
Map
<
String
,
List
<
List
<
Double
>>>
backCrossRedTimesMap
;
@ApiModelProperty
(
"绿波路口绿波开始时间"
)
@ApiModelProperty
(
"绿波路口绿波开始时间"
)
@JsonProperty
(
"greenStartMap"
)
Map
<
String
,
Double
>
greenStartMap
;
Map
<
String
,
Double
>
greenStartMap
;
@ApiModelProperty
(
"反向绿波路口绿波开始时间"
)
Map
<
String
,
Double
>
BackGreenStartMap
;
@JsonProperty
(
"distanceMap"
)
@ApiModelProperty
(
"绿波路口距离下一个路口距离"
)
@ApiModelProperty
(
"绿波路口距离下一个路口距离"
)
Map
<
String
,
Double
>
distanceMap
;
Map
<
String
,
Double
>
distanceMap
;
@ApiModelProperty
(
"绿波带宽"
)
@ApiModelProperty
(
"绿波带宽"
)
private
Double
greenWidthTime
;
private
Double
greenWidthTime
;
@ApiModelProperty
(
"反向绿波带宽"
)
private
Double
BackGreenWidthTime
;
}
}
signal-optimize-service/src/main/resources/bootstrap-docker.yaml
View file @
edbff274
...
@@ -2,7 +2,7 @@ spring:
...
@@ -2,7 +2,7 @@ spring:
cloud
:
cloud
:
nacos
:
nacos
:
config
:
config
:
server-addr
:
173.17.0.1
:8848
server-addr
:
37.12.182.29
:8848
file-extension
:
yaml
file-extension
:
yaml
group
:
signal
group
:
signal
namespace
:
signal
namespace
:
signal
...
...
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