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

Method ScheduleAtFixedRate

executor.go:106–129  ·  view source on GitHub ↗
(task Task, initialDelay time.Duration, period time.Duration)

Source from the content-addressed store, hash-verified

104}
105
106func (executor *SimpleTaskExecutor) ScheduleAtFixedRate(task Task, initialDelay time.Duration, period time.Duration) (ScheduledTask, error) {
107 if task == nil {
108 return nil, errors.New("task cannot be nil")
109 }
110
111 executor.executorMu.Lock()
112
113 if executor.isShutdown {
114 executor.executorMu.Unlock()
115 return nil, errors.New("no new task won't be accepted because executor is already shut down")
116 }
117
118 executor.nextSequence++
119 scheduledTask, err := CreateScheduledRunnableTask(executor.nextSequence, task, executor.calculateTriggerTime(initialDelay), period, true)
120 executor.executorMu.Unlock()
121
122 if err != nil {
123 return nil, err
124 }
125
126 executor.addNewTask(scheduledTask)
127
128 return scheduledTask, nil
129}
130
131func (executor *SimpleTaskExecutor) IsShutdown() bool {
132 executor.executorMu.Lock()

Calls 3

calculateTriggerTimeMethod · 0.95
addNewTaskMethod · 0.95