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
a44629ec
Commit
a44629ec
authored
Apr 17, 2024
by
duanjinfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update isCanExecute condition
parent
52549856
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
15 deletions
+22
-15
msg_handler.go
nm/msg_handler.go
+3
-0
task_handler.go
nm/task_handler.go
+19
-15
No files found.
nm/msg_handler.go
View file @
a44629ec
...
...
@@ -52,6 +52,9 @@ func (n *NodeManagerHandler) DistributionMsgWorker(nodeManagerMsgChan chan *node
isCanExecute
,
bootUpTime
,
queueWaitTime
,
executeTime
:=
taskMsgWorker
.
GetAckResp
(
taskMsg
)
ackParams
:=
utils
.
BuildParams
(
taskMsg
.
TaskId
,
isCanExecute
,
bootUpTime
,
queueWaitTime
,
executeTime
)
msgRespWorker
.
RegisterMsgResp
(
n
.
nodeManager
,
n
.
worker
,
RespTaskAck
,
ackParams
)
if
!
isCanExecute
{
return
}
taskMsgWorker
.
Wg
.
Add
(
1
)
taskMsgWorker
.
TaskMsg
<-
taskMsg
taskMsgWorker
.
Wg
.
Wait
()
...
...
nm/task_handler.go
View file @
a44629ec
...
...
@@ -159,14 +159,13 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
t
.
checkIsStopContainer
(
taskOp
.
taskCmd
)
}
log
.
Info
(
"check is stop container finished"
)
imageId
:=
t
.
foundTaskImage
(
taskOp
.
taskCmd
)
log
.
Info
(
"found task image finished"
)
if
imageId
==
""
{
log
.
Error
(
"The image is not found:"
,
taskOp
.
taskCmd
.
ImageName
)
taskOp
.
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s,%s"
,
"The image is not found:"
,
taskOp
.
taskCmd
.
ImageName
)
t
.
ExecTaskIdIsFinished
.
Store
(
taskMsg
.
TaskId
,
true
)
return
}
//imageId := t.foundTaskImage(taskOp.taskCmd)
//if imageId == "" {
// log.Error("The image is not found:", taskOp.taskCmd.ImageName)
// taskOp.taskExecResult.TaskExecError = fmt.Sprintf("%s,%s", "The image is not found:", taskOp.taskCmd.ImageName)
// t.ExecTaskIdIsFinished.Store(taskMsg.TaskId, true)
// return
//}
err
=
json
.
Unmarshal
(
taskMsg
.
TaskParam
,
taskOp
.
taskParam
)
if
err
!=
nil
{
log
.
WithField
(
"err"
,
err
)
.
Error
(
"Error unmarshalling task parameter"
)
...
...
@@ -174,7 +173,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
t
.
ExecTaskIdIsFinished
.
Store
(
taskMsg
.
TaskId
,
true
)
return
}
running
,
_
,
_
:=
t
.
foundImageIsRunning
(
imageId
)
running
,
_
,
_
:=
t
.
foundImageIsRunning
(
taskOp
.
taskCmd
.
ImageName
)
if
!
running
{
taskOp
.
taskCmd
.
DockerCmd
.
HostIp
=
models
.
ZeroHost
taskOp
.
taskCmd
.
DockerCmd
.
HostPort
=
t
.
getExternalPort
()
...
...
@@ -187,7 +186,7 @@ func (t *TaskWorker) ComputeTaskHandler(taskMsg *nodeManagerV1.PushTaskMessage)
}
log
.
Infof
(
"Started container with ID %s"
,
containerId
)
}
if
err
=
taskOp
.
waitContainerRunning
(
t
,
imageId
);
err
!=
nil
{
if
err
=
taskOp
.
waitContainerRunning
(
t
,
taskOp
.
taskCmd
.
ImageName
);
err
!=
nil
{
taskOp
.
taskExecResult
.
TaskExecError
=
fmt
.
Sprintf
(
"%s"
,
err
.
Error
())
t
.
ExecTaskIdIsFinished
.
Store
(
taskMsg
.
TaskId
,
true
)
return
...
...
@@ -236,6 +235,11 @@ func (t *TaskWorker) GetAckResp(taskMsg *nodeManagerV1.PushTaskMessage) (isCanEx
}
}
}
if
t
.
foundTaskImage
(
taskCmd
)
==
""
{
log
.
WithField
(
"imageName"
,
taskCmd
.
ImageName
)
.
Error
(
"The image is not found"
)
return
}
log
.
Info
(
"found task image finished"
)
isCanExecute
=
true
modelInfo
:=
t
.
DockerOp
.
GetImageInfo
(
taskCmd
.
ImageName
)
if
modelInfo
!=
nil
{
...
...
@@ -269,10 +273,10 @@ func (t *TaskWorker) foundTaskImage(taskCmd *models.TaskCmd) (imageId string) {
return
}
func
(
t
*
TaskWorker
)
foundImageIsRunning
(
image
Id
string
)
(
bool
,
string
,
uint16
)
{
func
(
t
*
TaskWorker
)
foundImageIsRunning
(
image
Name
string
)
(
bool
,
string
,
uint16
)
{
containers
:=
t
.
DockerOp
.
ListContainer
()
for
_
,
container
:=
range
containers
{
if
container
.
Image
ID
==
imageId
&&
container
.
State
==
"running"
{
if
container
.
Image
==
imageName
&&
container
.
State
==
"running"
{
networks
:=
container
.
NetworkSettings
.
Networks
ip
:=
""
for
_
,
endPoint
:=
range
networks
{
...
...
@@ -466,9 +470,9 @@ func (op *TaskOp) checkContainerHealthy(internalIp string, internalPort uint16)
return
true
,
nil
}
func
(
op
*
TaskOp
)
waitContainerRunning
(
handler
*
TaskWorker
,
image
Id
string
)
error
{
func
(
op
*
TaskOp
)
waitContainerRunning
(
handler
*
TaskWorker
,
image
Name
string
)
error
{
maxExecTime
:=
op
.
GetMaxExecTime
()
log
.
WithField
(
"maxExecTime"
,
maxExecTime
)
.
Info
(
"Waiting for container running"
,
image
Id
)
log
.
WithField
(
"maxExecTime"
,
maxExecTime
)
.
Info
(
"Waiting for container running"
,
image
Name
)
for
{
select
{
case
<-
op
.
ticker
.
C
:
...
...
@@ -476,7 +480,7 @@ func (op *TaskOp) waitContainerRunning(handler *TaskWorker, imageId string) erro
log
.
Errorf
(
"%s"
,
"The maximum execution time for this task has been exceeded"
)
return
fmt
.
Errorf
(
"%s"
,
"The maximum execution time for this task has been exceeded"
)
}
running
,
internalIp
,
internalPort
:=
handler
.
foundImageIsRunning
(
image
Id
)
running
,
internalIp
,
internalPort
:=
handler
.
foundImageIsRunning
(
image
Name
)
if
!
running
{
continue
}
...
...
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