@@ -132,25 +132,26 @@ func (handler *SQSHandler) ResendSQSMessage(queueURL string, message *sqs.Messag
132
132
func (handler * SQSHandler ) StartMonitoringProcess () {
133
133
for {
134
134
var nextMonitoredJobs []* JobInfo
135
-
135
+ handler . Mu . Lock ()
136
136
for _ , jobInfo := range handler .MonitoredJobs {
137
137
if jobInfo .Status == "Completed" {
138
138
nextMonitoredJobs = append (nextMonitoredJobs , jobInfo )
139
139
} else {
140
140
k8sJob , err := GetJobStatusByID (jobInfo .UID )
141
141
if err != nil {
142
- glog .Errorf ("Can not get k8s job %s. Detail %s. Resend the message to the queue" , jobInfo .Name , err )
143
- handler .ResendSQSMessage (handler .QueueURL , jobInfo .SQSMessage )
142
+ jobInfo .Status = "Unknown"
144
143
} else {
145
144
glog .Infof ("%s: %s" , k8sJob .Name , k8sJob .Status )
146
145
if k8sJob .Status == "Unknown" || k8sJob .Status == "Running" || k8sJob .Status == "Completed" {
147
146
jobInfo .Status = k8sJob .Status
148
- nextMonitoredJobs = append (nextMonitoredJobs , jobInfo )
147
+ } else if k8sJob .Status == "Failed" {
148
+ glog .Errorf ("The k8s job %s failed. Detail %s. Resend the message to the queue" , jobInfo .Name , err )
149
+ handler .ResendSQSMessage (handler .QueueURL , jobInfo .SQSMessage )
149
150
}
150
151
}
152
+ nextMonitoredJobs = append (nextMonitoredJobs , jobInfo )
151
153
}
152
154
}
153
- handler .Mu .Lock ()
154
155
handler .MonitoredJobs = nextMonitoredJobs
155
156
handler .Mu .Unlock ()
156
157
@@ -163,7 +164,22 @@ func (handler *SQSHandler) RemoveCompletedJobsProcess() {
163
164
for {
164
165
time .Sleep (time .Duration (GetCleanupTime ()) * time .Second )
165
166
glog .Info ("Start to remove completed jobs" )
166
- RemoveCompletedJobs (handler .MonitoredJobs )
167
+ handler .Mu .Lock ()
168
+ var tmp []* JobInfo
169
+ deletedJobs := RemoveCompletedJobs (handler .MonitoredJobs )
170
+ for _ , jobInfo := range handler .MonitoredJobs {
171
+ var isDeleted = false
172
+ for _ , jobid := range deletedJobs {
173
+ if jobInfo .UID == jobid {
174
+ isDeleted = true
175
+ }
176
+ }
177
+ if isDeleted == false {
178
+ tmp = append (tmp , jobInfo )
179
+ }
180
+ }
181
+ handler .MonitoredJobs = tmp
182
+ handler .Mu .Unlock ()
167
183
}
168
184
}
169
185
0 commit comments