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

Method ScheduleWithFixedDelay

executor.go:81–104  ·  view source on GitHub ↗
(task Task, initialDelay time.Duration, delay time.Duration)

Source from the content-addressed store, hash-verified

79}
80
81func (executor *SimpleTaskExecutor) ScheduleWithFixedDelay(task Task, initialDelay time.Duration, delay time.Duration) (ScheduledTask, error) {
82 if task == nil {
83 return nil, errors.New("task cannot be nil")
84 }
85
86 executor.executorMu.Lock()
87
88 if executor.isShutdown {
89 executor.executorMu.Unlock()
90 return nil, errors.New("no new task won't be accepted because executor is already shut down")
91 }
92
93 executor.nextSequence++
94 scheduledTask, err := CreateScheduledRunnableTask(executor.nextSequence, task, executor.calculateTriggerTime(initialDelay), delay, false)
95 executor.executorMu.Unlock()
96
97 if err != nil {
98 return nil, err
99 }
100
101 executor.addNewTask(scheduledTask)
102
103 return scheduledTask, nil
104}
105
106func (executor *SimpleTaskExecutor) ScheduleAtFixedRate(task Task, initialDelay time.Duration, period time.Duration) (ScheduledTask, error) {
107 if task == nil {

Calls 3

calculateTriggerTimeMethod · 0.95
addNewTaskMethod · 0.95