CronEvent#

NAME#

Kernel::System::CronEvent - Cron Events wrapper functions

DESCRIPTION#

Functions to calculate cron events time.

new()#

create a CronEvent object. Do not use it directly, instead use:

my $CronEventObject = $Kernel::OM->Get('Kernel::System::CronEvent');

NextEventGet()#

gets the time when the next cron event should occur, from a given time.

my $EventSystemTime = $CronEventObject->NextEventGet(
    Schedule      => '*/2 * * * *',    # recurrence parameters based in cron notation
    StartDateTime => $DateTimeObject,  # optional
);

Returns:

my $EventDateTime = '2016-01-23 14:56:12';  # or false in case of an error

NextEventList()#

gets the time when the next cron events should occur, from a given time on a defined range.

my @NextEvents = $CronEventObject->NextEventList(
    Schedule      => '*/2 * * * *',         # recurrence parameters based in cron notation
    StartDateTime => $StartDateTimeObject,  # optional, defaults to current date/time
    StopDateTime  => $StopDateTimeObject,
);

Returns:

my @NextEvents = [ '2016-01-12 13:23:01', ...  ];  # or false in case of an error

PreviousEventGet()#

gets the time when the last Cron event had occurred, from a given time.

my $PreviousSystemTime = $CronEventObject->PreviousEventGet(
    Schedule      => '*/2 * * * *',    # recurrence parameters based in Cron notation
    StartDateTime => $DateTimeObject,  # optional, defaults to current date/time
);

Returns:

my $EventDateTime = '2016-03-12 11:23:45';        # or false in case of an error

GenericAgentSchedule2CronTab()#

converts a GenericAgent schedule to a CRON tab format string

my $Schedule = $CronEventObject->GenericAgentSchedule2CronTab(
    ScheduleMinutes [1,2,3],
    ScheduleHours   [1,2,3],
    ScheduleDays    [1,2,3],
);

my $Schedule = '1,2,3 1,2,3 * * 1,2,3 *'  # or false in case of an error

_Init()#

creates a Schedule::Cron::Events object.

my $CronObject = $CronEventObject->_Init(
    Schedule      => '*/2 * * * *',   # recurrence parameters based in Cron notation
    StartDateTime => $DateTimeObject,
}