MCPcopy Index your code
hub / github.com/codnect/chrono / startTask

Method startTask

executor.go:221–251  ·  view source on GitHub ↗
(scheduledRunnableTask *ScheduledRunnableTask)

Source from the content-addressed store, hash-verified

219}
220
221func (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}

Callers 1

runMethod · 0.95

Calls 6

IsShutdownMethod · 0.95
calculateTriggerTimeMethod · 0.95
isPeriodicMethod · 0.80
isFixedRateMethod · 0.80
RunMethod · 0.65
CancelMethod · 0.65

Tested by

no test coverage detected