cycle-scheduler
cycle-scheduler is a simple scheduler lib, handling tasks and executes them at regular interval. If a task is not in desired state, the task is re-scheduled.
NOTE: this should be not used for long-running tasks, it's more suitable for shorts tasks like polling etc...
Examples
- Init a new scheduler with 4 workers
import (
"context"
scheduler "gitea.thegux.fr/rmanach/cycle-scheduler.git"
)
ctx := context.Background()
s := scheduler.NewSchedulerCycle(ctx, 4)
// add a task with an execution interval of 2 ms (executed every 2 ms)
// and a maximum duration of 30 second.
taskID := s.Delay(
func(ctx context.Context) (any, error) {
// ...
return any, nil
},
scheduler.WithExecInterval(2*time.Millisecond),
scheduler.WithMaxDuration(30*time.Second)
)
<-ctx.Done()
<-s.Done()
NOTE: for Delay optionals arguments, check the NewTask method documentation for more details.
Description
cycle-scheduler is a simple scheduler handling jobs and executes them at regular interval.
Languages
Go
99.7%
Makefile
0.3%