mirror of https://github.com/go-co-op/gocron.git
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
package gocron
|
|
|
|
import "time"
|
|
|
|
// SchedulerMonitor is called by the Scheduler to provide scheduler-level
|
|
// metrics and events.
|
|
type SchedulerMonitor interface {
|
|
// SchedulerStarted is called when Start() is invoked on the scheduler.
|
|
SchedulerStarted()
|
|
|
|
// SchedulerStopped is called when the scheduler's main loop stops,
|
|
// but before final cleanup in Shutdown().
|
|
SchedulerStopped()
|
|
|
|
// SchedulerShutdown is called when Shutdown() completes successfully.
|
|
SchedulerShutdown()
|
|
|
|
// JobRegistered is called when a job is registered with the scheduler.
|
|
JobRegistered(job Job)
|
|
|
|
// JobUnregistered is called when a job is unregistered from the scheduler.
|
|
JobUnregistered(job Job)
|
|
|
|
// JobStarted is called when a job starts running.
|
|
JobStarted(job Job)
|
|
|
|
// JobRunning is called when a job is running.
|
|
JobRunning(job Job)
|
|
|
|
// JobFailed is called when a job fails to complete successfully.
|
|
JobFailed(job Job, err error)
|
|
|
|
// JobCompleted is called when a job has completed running.
|
|
JobCompleted(job Job)
|
|
|
|
// JobExecutionTime is called after a job completes (success or failure)
|
|
// with the time it took to execute. This enables calculation of metrics
|
|
// like AverageExecutionTime.
|
|
JobExecutionTime(job Job, duration time.Duration)
|
|
|
|
// JobSchedulingDelay is called when a job starts running, providing both
|
|
// the scheduled time and actual start time. This enables calculation of
|
|
// SchedulingLag metrics to detect when jobs are running behind schedule.
|
|
JobSchedulingDelay(job Job, scheduledTime time.Time, actualStartTime time.Time)
|
|
|
|
// ConcurrencyLimitReached is called when a job cannot start immediately
|
|
// due to concurrency limits (singleton or limit mode).
|
|
// limitType will be "singleton" or "limit".
|
|
ConcurrencyLimitReached(limitType string, job Job)
|
|
}
|