Documentation ¶
Overview ¶
Package cronopts contains the options for cron.
Example (CronJobMetrics) ¶
package main import ( "context" "fmt" "github.com/DoNewsCode/core" "github.com/DoNewsCode/core/cronopts" "github.com/DoNewsCode/core/observability" "github.com/robfig/cron/v3" "math/rand" "time" ) type CronModule struct { metrics *cronopts.CronJobMetrics } func NewCronModule(metrics *cronopts.CronJobMetrics) CronModule { return CronModule{metrics: metrics.Module("test_module")} } func (c CronModule) ProvideCron(crontab *cron.Cron) { // Create a new cron job, and measure its execution durations. crontab.AddJob("* * * * *", c.metrics.Job("test_job").Measure(cron.FuncJob(func() { fmt.Println("running") // For 50% chance, the job may fail. Report it to metrics collector. if rand.Float64() > 0.5 { c.metrics.Fail() } }))) } func main() { c := core.Default() c.Provide(observability.Providers()) c.AddModuleFunc(NewCronModule) ctx, cancel := context.WithTimeout(context.Background(), 1500*time.Millisecond) defer cancel() c.Serve(ctx) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Measure ¶ added in v0.11.0
func Measure(c *CronJobMetrics) cron.JobWrapper
Measure returns a job wrapper that wraps the given job and records the duration and success.
Types ¶
type CronJobMetrics ¶ added in v0.11.0
type CronJobMetrics struct {
// contains filtered or unexported fields
}
CronJobMetrics collects metrics for cron jobs.
func NewCronJobMetrics ¶ added in v0.11.0
func NewCronJobMetrics(histogram metrics.Histogram, counter metrics.Counter) *CronJobMetrics
NewCronJobMetrics constructs a new *CronJobMetrics, setting default labels to "unknown".
func (*CronJobMetrics) Fail ¶ added in v0.11.0
func (c *CronJobMetrics) Fail()
Fail marks the job as failed.
func (*CronJobMetrics) Job ¶ added in v0.11.0
func (c *CronJobMetrics) Job(job string) *CronJobMetrics
Job specifies the job label for CronJobMetrics.
func (*CronJobMetrics) Measure ¶ added in v0.11.0
func (c *CronJobMetrics) Measure(job cron.Job) cron.Job
Measure wraps the given job and records the duration and success.
func (*CronJobMetrics) Module ¶ added in v0.11.0
func (c *CronJobMetrics) Module(module string) *CronJobMetrics
Module specifies the module label for CronJobMetrics.
type CronLogAdapter ¶
CronLogAdapter is an adapter between kitlog and cron logger interface
func (CronLogAdapter) Error ¶
func (c CronLogAdapter) Error(err error, msg string, keysAndValues ...interface{})
Error implements cron.Logger
func (CronLogAdapter) Info ¶
func (c CronLogAdapter) Info(msg string, keysAndValues ...interface{})
Info implements cron.Logger
Click to show internal directories.
Click to hide internal directories.