Documentation ¶
Overview ¶
Package cron implements cron jobs for the Joe bot library. https://github.com/go-joe/joe
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Parser = cron.NewParser(
cron.SecondOptional | cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor,
)
Parser is the default cron.Parser which is configured to accept standard cron schedules with optional seconds.
Functions ¶
This section is empty.
Types ¶
type Event ¶
type Event struct{}
Event is the event that the ScheduleEvent(…) type functions emit if no custom event was passed as argument. It can be useful to implement simple jobs that do not require any context but just a schedule that triggers them at an interval.
type Job ¶ added in v0.2.0
type Job struct {
// contains filtered or unexported fields
}
A Job is a joe.Module that runs a single cron job on a given interval.
func ScheduleEvent ¶
ScheduleEvent creates a joe.Module that emits one or many events on a given cron schedule (e.g. "0 0 * * *"). If the passed schedule is not a valid cron schedule as accepted by the package level Parser, the corresponding error will be returned when the bot is started.
You can execute this function with only a schedule but no events. In this case the job will emit an instance of the cron.Event type that is defined in this package. Otherwise all passed events are emitted on the schedule.
func ScheduleEventEvery ¶
ScheduleEventEvery creates a joe.Module that emits one or many events on a given interval (e.g. every hour). The minimum duration is one second and any smaller durations will be rounded up to that.
You can execute this function with only a schedule but no events. In this case the job will emit an instance of the cron.Event type that is defined in this package. Otherwise all passed events are emitted on the schedule.
func ScheduleFunc ¶
ScheduleFunc creates a joe.Module that runs the given function on a given cron schedule (e.g. "0 0 * * *"). Optionally, the cron schedule can also contain seconds, i.e. "30 0 0 * * *".
If the passed schedule is not a valid cron schedule as accepted by the package level Parser, the corresponding error will be returned when the bot is started.
func ScheduleFuncEvery ¶
ScheduleFuncEvery creates a joe.Module that runs the given function on a given interval (e.g. every hour). The minimum duration is one second and any smaller durations will be rounded up to that.
func (*Job) Apply ¶ added in v0.2.0
Apply implements joe.Module by starting a new cron job that may use the event emitter from the configuration (if it actually emits events). Jobs that only run functions will only require a logger.
func (*Job) Start ¶ added in v0.2.0
Start starts the cron job. If you are using the job as joe.Module there is no need to start the job explicitly. This function is useful if you want to manage jobs yourself if you do not pass them to the bot as joe.Module.
If the job does not actually emit events, the passed event emitter will not be used and can be nil.