Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
power-node
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
Odysseus
power-node
Commits
e6786a62
Commit
e6786a62
authored
Feb 28, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update submit taskid indexes resoursemap
parent
dc4a4687
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
24 deletions
+37
-24
model_handler.go
nm/model_handler.go
+8
-6
msg_resp.go
nm/msg_resp.go
+15
-2
docker.go
operate/docker.go
+14
-16
No files found.
nm/model_handler.go
View file @
e6786a62
...
...
@@ -49,6 +49,8 @@ func monitorModelInfo(dockerOp *operate.DockerOp) {
log
.
Error
(
"Docker op ps images failed:"
,
err
)
continue
}
reportTaskIds
:=
make
([]
uint64
,
0
)
reportTaskIds
=
append
(
reportTaskIds
,
uint64
(
len
(
modelInfosResp
)))
for
_
,
modelInfo
:=
range
modelInfosResp
{
if
modelInfo
.
ImageName
==
""
{
continue
...
...
@@ -64,16 +66,16 @@ func monitorModelInfo(dockerOp *operate.DockerOp) {
if
isPull
{
go
dockerOp
.
PullImage
(
modelInfo
)
modelInfo
.
IsImageExist
=
true
dockerOp
.
ModelTaskIdChan
<-
modelInfo
.
TaskId
dockerOp
.
IsReportModelTaskId
[
modelInfo
.
TaskId
]
=
true
// todo: 是否立马上报数据
// reportTaskIds = append(reportTaskIds, modelInfo.TaskId)
}
}
else
if
!
dockerOp
.
IsReportModelTaskId
[
modelInfo
.
TaskId
]
{
dockerOp
.
ModelTaskIdChan
<-
modelInfo
.
TaskId
dockerOp
.
IsReportModelTaskId
[
modelInfo
.
TaskId
]
=
true
}
else
{
reportTaskIds
=
append
(
reportTaskIds
,
modelInfo
.
TaskId
)
}
dockerOp
.
SignApi
[
modelInfo
.
ImageName
]
=
modelInfo
.
SignUrl
dockerOp
.
ModelsInfo
=
append
(
dockerOp
.
ModelsInfo
,
modelInfo
)
}
dockerOp
.
ModelTaskIdIndexesChan
<-
reportTaskIds
ticker
=
time
.
NewTicker
(
time
.
Minute
*
10
)
}
}
...
...
@@ -84,7 +86,7 @@ func reportModelInfo(nodeManager *models.NodeManagerClient,
msgRespWorker
*
RespMsgWorker
,
dockerOp
*
operate
.
DockerOp
)
{
for
{
select
{
case
taskId
:=
<-
dockerOp
.
ModelTaskIdChan
:
case
taskId
:=
<-
dockerOp
.
ModelTaskId
Indexes
Chan
:
if
!
nodeManager
.
Status
{
log
.
WithField
(
"endpoint"
,
nodeManager
.
Endpoint
)
.
Error
(
"Node manager is down , stop report model info"
)
return
...
...
nm/msg_resp.go
View file @
e6786a62
...
...
@@ -44,6 +44,10 @@ func (o *RespMsgWorker) SendMsg() {
case
pool
:=
<-
o
.
MsgPool
:
{
workerMsg
:=
pool
.
handler
(
pool
.
params
...
)
if
workerMsg
==
nil
{
log
.
Warn
(
"Send to node manager workerMsg is nil"
)
continue
}
err
:=
pool
.
workerClient
.
SendMsg
(
workerMsg
)
if
err
!=
nil
{
log
.
Error
(
"Send msg to nm client failed:"
,
err
)
...
...
@@ -71,10 +75,19 @@ func HeartbeatResp(params ...interface{}) *nodemanagerV1.WorkerMessage {
func
SubmitResourceMapRes
(
params
...
interface
{})
*
nodemanagerV1
.
WorkerMessage
{
log
.
Info
(
"Heartbeat response received params: "
,
params
)
taskIdIndex
:=
params
[
0
]
.
(
uint64
)
b
:=
bitmap
.
New
(
taskIdIndex
)
taskIdLength
:=
params
[
0
]
.
(
uint64
)
b
:=
bitmap
.
New
(
taskIdLength
)
for
i
:=
1
;
i
<
len
(
params
);
i
++
{
taskIdIndex
:=
params
[
i
]
.
(
uint64
)
err
:=
b
.
Set
(
taskIdIndex
)
if
err
!=
nil
{
log
.
WithField
(
"taskId index"
,
i
)
.
Error
(
"Error setting task id index"
)
return
nil
}
}
binary
,
err
:=
b
.
MarshalBinary
()
if
err
!=
nil
{
log
.
Error
(
"bitmap marshal binary failed with error: "
,
err
)
return
nil
}
heartRes
:=
&
nodemanagerV1
.
WorkerMessage
{
...
...
operate/docker.go
View file @
e6786a62
...
...
@@ -23,14 +23,13 @@ import (
var
httpClient
*
http
.
Client
type
DockerOp
struct
{
IsHealthy
bool
Reason
string
dockerClient
*
client
.
Client
UsedExternalPort
map
[
int64
]
bool
SignApi
map
[
string
]
string
ModelsInfo
[]
*
models
.
ModelInfo
IsReportModelTaskId
map
[
uint64
]
bool
ModelTaskIdChan
chan
uint64
IsHealthy
bool
Reason
string
dockerClient
*
client
.
Client
UsedExternalPort
map
[
int64
]
bool
SignApi
map
[
string
]
string
ModelsInfo
[]
*
models
.
ModelInfo
ModelTaskIdIndexesChan
chan
[]
uint64
}
func
init
()
{
...
...
@@ -46,14 +45,13 @@ func NewDockerOp() *DockerOp {
}
}
return
&
DockerOp
{
IsHealthy
:
true
,
Reason
:
""
,
dockerClient
:
dockerClient
,
SignApi
:
make
(
map
[
string
]
string
,
0
),
ModelsInfo
:
make
([]
*
models
.
ModelInfo
,
0
),
IsReportModelTaskId
:
make
(
map
[
uint64
]
bool
,
0
),
UsedExternalPort
:
make
(
map
[
int64
]
bool
,
0
),
ModelTaskIdChan
:
make
(
chan
uint64
,
0
),
IsHealthy
:
true
,
Reason
:
""
,
dockerClient
:
dockerClient
,
SignApi
:
make
(
map
[
string
]
string
,
0
),
ModelsInfo
:
make
([]
*
models
.
ModelInfo
,
0
),
UsedExternalPort
:
make
(
map
[
int64
]
bool
,
0
),
ModelTaskIdIndexesChan
:
make
(
chan
[]
uint64
,
0
),
}
}
...
...
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