Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wj-datacenter-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
jinan
wj-datacenter-platform
Commits
2046c4a3
Commit
2046c4a3
authored
Jan 27, 2024
by
zhoushiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
car route path optimize
parent
4b8b40c3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
29 additions
and
6 deletions
+29
-6
CarRoutePathMainNew.java
...ji/indicators/task/track/service/CarRoutePathMainNew.java
+1
-1
TrackStoreMainNew.java
...anji/indicators/task/track/service/TrackStoreMainNew.java
+1
-1
SplitRoutePathFunction.java
...ators/task/track/service/func/SplitRoutePathFunction.java
+22
-1
ElasticSearchSinkUtil.java
...java/com/wanji/indicators/util/ElasticSearchSinkUtil.java
+5
-3
No files found.
wj-realtime-computing/src/main/java/com/wanji/indicators/task/track/service/CarRoutePathMainNew.java
View file @
2046c4a3
...
...
@@ -93,7 +93,7 @@ public class CarRoutePathMainNew {
// ElasticSearchSinkUtil.addSink(esAddresses, 2, splitLineStream, elasticsearchSinkFunction);
PartitionRoutePathElasticSearchSinkFunction
elasticsearchSinkFunction1
=
new
PartitionRoutePathElasticSearchSinkFunction
(
indexName
);
ElasticSearchSinkUtil
.
addSink
(
esAddresses
,
2
,
splitLineStream
,
elasticsearchSinkFunction1
);
ElasticSearchSinkUtil
.
addSink
(
"Sink Route Path"
,
esAddresses
,
5
,
splitLineStream
,
elasticsearchSinkFunction1
);
}
catch
(
MalformedURLException
e
)
{
e
.
printStackTrace
();
...
...
wj-realtime-computing/src/main/java/com/wanji/indicators/task/track/service/TrackStoreMainNew.java
View file @
2046c4a3
...
...
@@ -112,7 +112,7 @@ public class TrackStoreMainNew {
PartitionBatchTrackElasticSearchSinkFunction
elasticsearchSinkFunction1
=
new
PartitionBatchTrackElasticSearchSinkFunction
(
indexName
);
ElasticSearchSinkUtil
.
addSink
(
esAddresses
,
2
,
groupByPlateStream
,
elasticsearchSinkFunction1
);
ElasticSearchSinkUtil
.
addSink
(
"Sink Track Point"
,
esAddresses
,
5
,
groupByPlateStream
,
elasticsearchSinkFunction1
);
}
catch
(
MalformedURLException
e
)
{
...
...
wj-realtime-computing/src/main/java/com/wanji/indicators/task/track/service/func/SplitRoutePathFunction.java
View file @
2046c4a3
...
...
@@ -34,7 +34,7 @@ public class SplitRoutePathFunction extends KeyedProcessFunction<Tuple3<String,
public
void
open
(
Configuration
parameters
)
throws
Exception
{
PropertiesHelper
instance
=
PropertiesHelper
.
getInstance
();
StateTtlConfig
ttlConfig
=
StateTtlConfig
.
newBuilder
(
Time
.
hours
(
1
2
))
//状态过期时间
StateTtlConfig
ttlConfig
=
StateTtlConfig
.
newBuilder
(
Time
.
hours
(
1
))
//状态过期时间
.
setUpdateType
(
StateTtlConfig
.
UpdateType
.
OnReadAndWrite
)
.
cleanupFullSnapshot
()
.
setStateVisibility
(
StateTtlConfig
.
StateVisibility
.
ReturnExpiredIfNotCleanedUp
)
//不返回过期值
...
...
@@ -148,6 +148,26 @@ public class SplitRoutePathFunction extends KeyedProcessFunction<Tuple3<String,
int
interval
=
timeOut
*
60
*
1000
;
long
fireTime
=
context
.
timestamp
()
-
context
.
timestamp
()
%
60000
+
interval
;
context
.
timerService
().
registerEventTimeTimer
(
fireTime
);
/**************************过期key-start**********************************************/
Set
<
Tuple3
<
String
,
Integer
,
String
>>
expireKeys
=
new
HashSet
<>();
Iterator
<
Map
.
Entry
<
Tuple3
<
String
,
Integer
,
String
>,
RoutePathCarTrackModel
>>
iterator
=
mapStateOfLineSplit
.
iterator
();
while
(
iterator
.
hasNext
())
{
Map
.
Entry
<
Tuple3
<
String
,
Integer
,
String
>,
RoutePathCarTrackModel
>
entry
=
iterator
.
next
();
RoutePathCarTrackModel
model
=
entry
.
getValue
();
long
timestamp
=
model
.
getStartGlobalTimeStamp
();
if
(
System
.
currentTimeMillis
()
-
timestamp
>
timeOut
*
1000
)
{
//缓存超过10分钟
expireKeys
.
add
(
entry
.
getKey
());
}
}
if
(!
expireKeys
.
isEmpty
()){
log
.
info
(
"Car-Route 过期key:{}"
,
expireKeys
);
for
(
Tuple3
<
String
,
Integer
,
String
>
key
:
expireKeys
)
{
mapStateOfLineSplit
.
remove
(
key
);
lineNoState
.
remove
(
key
);
}
}
/**************************过期key-end**********************************************/
}
@Override
...
...
@@ -185,6 +205,7 @@ public class SplitRoutePathFunction extends KeyedProcessFunction<Tuple3<String,
}
for
(
Tuple3
<
String
,
Integer
,
String
>
key
:
expireKeys
)
{
mapStateOfLineSplit
.
remove
(
key
);
lineNoState
.
remove
(
key
);
}
ctx
.
timerService
().
deleteProcessingTimeTimer
(
timestamp
);
}
...
...
wj-realtime-computing/src/main/java/com/wanji/indicators/util/ElasticSearchSinkUtil.java
View file @
2046c4a3
...
...
@@ -97,7 +97,9 @@ public class ElasticSearchSinkUtil {
index
.
mapping
(
mappingBuilder
);
}
//设置嵌套窗口
index
.
settings
(
Settings
.
builder
().
put
(
"index.max_inner_result_window"
,
2000000000
));
index
.
settings
(
Settings
.
builder
()
.
put
(
"index.max_inner_result_window"
,
2000000000
)
);
ElasticSearchSinkUtil
.
client
.
indices
().
create
(
index
,
RequestOptions
.
DEFAULT
);
}
catch
(
IOException
e
)
{
...
...
@@ -154,7 +156,7 @@ public class ElasticSearchSinkUtil {
* @param func
* @param <T>
*/
public
static
<
T
>
void
addSink
(
List
<
HttpHost
>
hosts
,
int
parallelism
,
public
static
<
T
>
void
addSink
(
String
sinkName
,
List
<
HttpHost
>
hosts
,
int
parallelism
,
SingleOutputStreamOperator
<
T
>
data
,
ElasticsearchSinkFunction
<
T
>
func
)
{
ElasticsearchSink
.
Builder
<
T
>
esBuilder
=
new
ElasticsearchSink
.
Builder
<>(
hosts
,
func
);
...
...
@@ -172,7 +174,7 @@ public class ElasticSearchSinkUtil {
// 设置失败处理
esBuilder
.
setFailureHandler
(
new
RetryRejectedExecutionFailureHandler
());
data
.
addSink
(
esBuilder
.
build
()).
setParallelism
(
parallelism
).
name
(
"BatchTrack Sink To ES"
);
data
.
addSink
(
esBuilder
.
build
()).
setParallelism
(
parallelism
).
name
(
sinkName
);
}
public
static
RestClientFactory
restClientFactory
=
new
RestClientFactory
()
{
...
...
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