Event
class Event (View source)
Traits
Properties
static protected array | $macros | The registered string macros. |
from Macroable |
string|null | $command | The command string. |
|
string | $expression | The cron expression representing the event's frequency. |
|
DateTimeZone|string | $timezone | The timezone the date should be evaluated on. |
|
string|null | $user | The user the command should run as. |
|
array | $environments | The list of environments the command should run under. |
|
bool | $evenInMaintenanceMode | Indicates if the command should run in maintenance mode. |
|
bool | $withoutOverlapping | Indicates if the command should not overlap itself. |
|
bool | $onOneServer | Indicates if the command should only be allowed to run on one server for each cron expression. |
|
int | $expiresAt | The number of minutes the mutex should be valid. |
|
bool | $runInBackground | Indicates if the command should run in the background. |
|
protected array | $filters | The array of filter callbacks. |
|
protected array | $rejects | The array of reject callbacks. |
|
string | $output | The location that output should be sent to. |
|
bool | $shouldAppendOutput | Indicates whether output should be appended. |
|
protected array | $beforeCallbacks | The array of callbacks to be run before the event is started. |
|
protected array | $afterCallbacks | The array of callbacks to be run after the event is finished. |
|
string|null | $description | The human readable description of the event. |
|
EventMutex | $mutex | The event mutex implementation. |
|
Closure|null | $mutexNameResolver | The mutex name resolver callback. |
|
int|null | $exitCode | The exit status code of the command. |
Methods
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
The Cron expression representing the event's frequency.
Schedule the event to run between start and end time.
Schedule the event to not run between start and end time.
Schedule the event to run every fifteen minutes.
Schedule the event to run hourly at a given offset in the hour.
Schedule the event to run daily at a given time (10:00, 19:30, etc).
Schedule the event to run twice daily.
Schedule the event to run twice daily at a given offset.
Schedule the event to run weekly on a given day and time.
Schedule the event to run monthly on a given day and time.
Schedule the event to run twice monthly at a given time.
Schedule the event to run on the last day of the month.
Schedule the event to run quarterly on a given day and time.
Schedule the event to run yearly on a given month, day, and time.
Set the days of the week the command should run on.
Splice the given value into the given position of the expression.
Get the class name of the first parameter of the given Closure.
Get the class names of the first parameter of the given Closure, including union types.
Get the class names / types of the parameters of the given Closure.
Create a new event instance.
Get the default output depending on the OS.
Determine if the event should skip because another process is overlapping.
Build the command string.
Determine if the event runs in maintenance mode.
Determine if the Cron expression passes.
Determine if the event runs in the given environment.
Ensure that the output is stored on disk in a log file.
Send the output of the command to a given location.
Append the output of the command to a given location.
E-mail the results of the scheduled operation.
E-mail the results of the scheduled operation if it produces output.
E-mail the results of the scheduled operation if it fails.
Ensure that the command output is being captured.
E-mail the output of the event to the recipients.
Get the e-mail subject line for output results.
Register a callback to ping a given URL before the job runs.
Register a callback to ping a given URL before the job runs if the given condition is true.
Register a callback to ping a given URL after the job runs.
Register a callback to ping a given URL after the job runs if the given condition is true.
Register a callback to ping a given URL if the operation succeeds.
Register a callback to ping a given URL if the operation fails.
Get the callback that pings the given URL.
State that the command should run in the background.
Set which user the command should run as.
Limit the environments the command should run in.
State that the command should run even in maintenance mode.
Do not allow the event to overlap each other.
Allow the event to only run on one server for each cron expression.
Register a callback that uses the output after the job runs.
Register a callback that uses the output if the operation succeeds.
Register a callback that uses the output if the operation fails.
Get a callback that provides output.
Set the human-friendly description of the event.
Set the human-friendly description of the event.
Get the summary of the event for display.
Determine the next due date for an event.
Get the Cron expression for the event.
Get the mutex name for the scheduled command.
Set the mutex name or name resolver callback.
Delete the mutex for the event.
Details
static void
macro(string $name, object|callable $macro)
Register a custom macro.
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
static bool
hasMacro(string $name)
Checks if macro is registered.
static void
flushMacros()
Flush the existing macros.
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
$this
cron(string $expression)
The Cron expression representing the event's frequency.
$this
between(string $startTime, string $endTime)
Schedule the event to run between start and end time.
$this
unlessBetween(string $startTime, string $endTime)
Schedule the event to not run between start and end time.
$this
everyMinute()
Schedule the event to run every minute.
$this
everyTwoMinutes()
Schedule the event to run every two minutes.
$this
everyThreeMinutes()
Schedule the event to run every three minutes.
$this
everyFourMinutes()
Schedule the event to run every four minutes.
$this
everyFiveMinutes()
Schedule the event to run every five minutes.
$this
everyTenMinutes()
Schedule the event to run every ten minutes.
$this
everyFifteenMinutes()
Schedule the event to run every fifteen minutes.
$this
everyThirtyMinutes()
Schedule the event to run every thirty minutes.
$this
hourly()
Schedule the event to run hourly.
$this
hourlyAt(array|int $offset)
Schedule the event to run hourly at a given offset in the hour.
$this
everyOddHour()
Schedule the event to run every odd hour.
$this
everyTwoHours()
Schedule the event to run every two hours.
$this
everyThreeHours()
Schedule the event to run every three hours.
$this
everyFourHours()
Schedule the event to run every four hours.
$this
everySixHours()
Schedule the event to run every six hours.
$this
daily()
Schedule the event to run daily.
$this
at(string $time)
Schedule the command at a given time.
$this
dailyAt(string $time)
Schedule the event to run daily at a given time (10:00, 19:30, etc).
$this
twiceDaily(int $first = 1, int $second = 13)
Schedule the event to run twice daily.
$this
twiceDailyAt(int $first = 1, int $second = 13, int $offset = 0)
Schedule the event to run twice daily at a given offset.
$this
weekdays()
Schedule the event to run only on weekdays.
$this
weekends()
Schedule the event to run only on weekends.
$this
mondays()
Schedule the event to run only on Mondays.
$this
tuesdays()
Schedule the event to run only on Tuesdays.
$this
wednesdays()
Schedule the event to run only on Wednesdays.
$this
thursdays()
Schedule the event to run only on Thursdays.
$this
fridays()
Schedule the event to run only on Fridays.
$this
saturdays()
Schedule the event to run only on Saturdays.
$this
sundays()
Schedule the event to run only on Sundays.
$this
weekly()
Schedule the event to run weekly.
$this
weeklyOn(array|mixed $dayOfWeek, string $time = '0:0')
Schedule the event to run weekly on a given day and time.
$this
monthly()
Schedule the event to run monthly.
$this
monthlyOn(int $dayOfMonth = 1, string $time = '0:0')
Schedule the event to run monthly on a given day and time.
$this
twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0')
Schedule the event to run twice monthly at a given time.
$this
lastDayOfMonth(string $time = '0:0')
Schedule the event to run on the last day of the month.
$this
quarterly()
Schedule the event to run quarterly.
$this
quarterlyOn(int $dayOfQuarter = 1, int $time = '0:0')
Schedule the event to run quarterly on a given day and time.
$this
yearly()
Schedule the event to run yearly.
$this
yearlyOn(int $month = 1, int|string $dayOfMonth = 1, string $time = '0:0')
Schedule the event to run yearly on a given month, day, and time.
$this
days(array|mixed $days)
Set the days of the week the command should run on.
$this
timezone(DateTimeZone|string $timezone)
Set the timezone the date should be evaluated on.
protected $this
spliceIntoPosition(int $position, string $value)
Splice the given value into the given position of the expression.
protected string
firstClosureParameterType(Closure $closure)
Get the class name of the first parameter of the given Closure.
protected array
firstClosureParameterTypes(Closure $closure)
Get the class names of the first parameter of the given Closure, including union types.
protected array
closureParameterTypes(Closure $closure)
Get the class names / types of the parameters of the given Closure.
void
__construct(EventMutex $mutex, string $command, DateTimeZone|string|null $timezone = null)
Create a new event instance.
string
getDefaultOutput()
Get the default output depending on the OS.
void
run(Container $container)
Run the given event.
bool
shouldSkipDueToOverlapping()
Determine if the event should skip because another process is overlapping.
protected int
start(Container $container)
Run the command process.
protected int
execute(Container $container)
Run the command process.
void
finish(Container $container, int $exitCode)
Mark the command process as finished and run callbacks/cleanup.
void
callBeforeCallbacks(Container $container)
Call all of the "before" callbacks for the event.
void
callAfterCallbacks(Container $container)
Call all of the "after" callbacks for the event.
string
buildCommand()
Build the command string.
bool
isDue(Application $app)
Determine if the given event should run based on the Cron expression.
bool
runsInMaintenanceMode()
Determine if the event runs in maintenance mode.
protected bool
expressionPasses()
Determine if the Cron expression passes.
bool
runsInEnvironment(string $environment)
Determine if the event runs in the given environment.
bool
filtersPass(Application $app)
Determine if the filters pass for the event.
$this
storeOutput()
Ensure that the output is stored on disk in a log file.
$this
sendOutputTo(string $location, bool $append = false)
Send the output of the command to a given location.
$this
appendOutputTo(string $location)
Append the output of the command to a given location.
$this
emailOutputTo(array|mixed $addresses, bool $onlyIfOutputExists = false)
E-mail the results of the scheduled operation.
$this
emailWrittenOutputTo(array|mixed $addresses)
E-mail the results of the scheduled operation if it produces output.
$this
emailOutputOnFailure(array|mixed $addresses)
E-mail the results of the scheduled operation if it fails.
protected void
ensureOutputIsBeingCaptured()
Ensure that the command output is being captured.
protected void
emailOutput(Mailer $mailer, array $addresses, bool $onlyIfOutputExists = false)
E-mail the output of the event to the recipients.
protected string
getEmailSubject()
Get the e-mail subject line for output results.
$this
pingBefore(string $url)
Register a callback to ping a given URL before the job runs.
$this
pingBeforeIf(bool $value, string $url)
Register a callback to ping a given URL before the job runs if the given condition is true.
$this
thenPing(string $url)
Register a callback to ping a given URL after the job runs.
$this
thenPingIf(bool $value, string $url)
Register a callback to ping a given URL after the job runs if the given condition is true.
$this
pingOnSuccess(string $url)
Register a callback to ping a given URL if the operation succeeds.
$this
pingOnFailure(string $url)
Register a callback to ping a given URL if the operation fails.
protected Closure
pingCallback(string $url)
Get the callback that pings the given URL.
$this
runInBackground()
State that the command should run in the background.
$this
user(string $user)
Set which user the command should run as.
$this
environments(array|mixed $environments)
Limit the environments the command should run in.
$this
evenInMaintenanceMode()
State that the command should run even in maintenance mode.
$this
withoutOverlapping(int $expiresAt = 1440)
Do not allow the event to overlap each other.
The expiration time of the underlying cache lock may be specified in minutes.
$this
onOneServer()
Allow the event to only run on one server for each cron expression.
$this
when(Closure|bool $callback)
Register a callback to further filter the schedule.
$this
skip(Closure|bool $callback)
Register a callback to further filter the schedule.
$this
before(Closure $callback)
Register a callback to be called before the operation.
$this
after(Closure $callback)
Register a callback to be called after the operation.
$this
then(Closure $callback)
Register a callback to be called after the operation.
$this
thenWithOutput(Closure $callback, bool $onlyIfOutputExists = false)
Register a callback that uses the output after the job runs.
$this
onSuccess(Closure $callback)
Register a callback to be called if the operation succeeds.
$this
onSuccessWithOutput(Closure $callback, bool $onlyIfOutputExists = false)
Register a callback that uses the output if the operation succeeds.
$this
onFailure(Closure $callback)
Register a callback to be called if the operation fails.
$this
onFailureWithOutput(Closure $callback, bool $onlyIfOutputExists = false)
Register a callback that uses the output if the operation fails.
protected Closure
withOutputCallback(Closure $callback, bool $onlyIfOutputExists = false)
Get a callback that provides output.
$this
name(string $description)
Set the human-friendly description of the event.
$this
description(string $description)
Set the human-friendly description of the event.
string
getSummaryForDisplay()
Get the summary of the event for display.
Carbon
nextRunDate(DateTimeInterface|string $currentTime = 'now', int $nth = 0, bool $allowCurrentDate = false)
Determine the next due date for an event.
string
getExpression()
Get the Cron expression for the event.
$this
preventOverlapsUsing(EventMutex $mutex)
Set the event mutex implementation to be used.
string
mutexName()
Get the mutex name for the scheduled command.
$this
createMutexNameUsing(Closure|string $mutexName)
Set the mutex name or name resolver callback.
protected void
removeMutex()
Delete the mutex for the event.