(scheduledRunnableTask *ScheduledRunnableTask)
| 219 | } |
| 220 | |
| 221 | func (executor *SimpleTaskExecutor) startTask(scheduledRunnableTask *ScheduledRunnableTask) { |
| 222 | executor.taskWaitGroup.Add(1) |
| 223 | |
| 224 | executor.taskRunner.Run(func(ctx context.Context) { |
| 225 | defer func() { |
| 226 | if executor.IsShutdown() { |
| 227 | scheduledRunnableTask.Cancel() |
| 228 | executor.taskWaitGroup.Done() |
| 229 | return |
| 230 | } |
| 231 | |
| 232 | executor.taskWaitGroup.Done() |
| 233 | |
| 234 | if !scheduledRunnableTask.isPeriodic() { |
| 235 | scheduledRunnableTask.Cancel() |
| 236 | } else { |
| 237 | if !scheduledRunnableTask.isFixedRate() { |
| 238 | scheduledRunnableTask.triggerTime = executor.calculateTriggerTime(scheduledRunnableTask.period) |
| 239 | executor.rescheduleTaskChannel <- scheduledRunnableTask |
| 240 | } |
| 241 | } |
| 242 | }() |
| 243 | |
| 244 | if scheduledRunnableTask.isPeriodic() && scheduledRunnableTask.isFixedRate() { |
| 245 | executor.rescheduleTaskChannel <- scheduledRunnableTask |
| 246 | } |
| 247 | |
| 248 | scheduledRunnableTask.task(ctx) |
| 249 | }) |
| 250 | |
| 251 | } |
no test coverage detected