Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesAttributes.php
Строк: 280
<?php

namespace IlluminateConsoleScheduling;

use 
IlluminateSupportReflector;

trait 
ManagesAttributes
{
    
/**
     * The cron expression representing the event's frequency.
     *
     * @var string
     */
    
public $expression '* * * * *';

    
/**
     * How often to repeat the event during a minute.
     *
     * @var int|null
     */
    
public $repeatSeconds null;

    
/**
     * The timezone the date should be evaluated on.
     *
     * @var DateTimeZone|string
     */
    
public $timezone;

    
/**
     * The user the command should run as.
     *
     * @var string|null
     */
    
public $user;

    
/**
     * The list of environments the command should run under.
     *
     * @var array
     */
    
public $environments = [];

    
/**
     * Indicates if the command should run in maintenance mode.
     *
     * @var bool
     */
    
public $evenInMaintenanceMode false;

    
/**
     * Indicates if the command should run even when the scheduler is paused.
     *
     * @var bool
     */
    
public $evenWhenPaused false;

    
/**
     * Indicates if the command should not overlap itself.
     *
     * @var bool
     */
    
public $withoutOverlapping false;

    
/**
     * Indicates if the mutex should be released when the process receives a termination signal.
     *
     * @var bool
     */
    
public $releaseOnTerminationSignals true;

    
/**
     * Indicates if the command should only be allowed to run on one server for each cron expression.
     *
     * @var bool
     */
    
public $onOneServer false;

    
/**
     * The number of minutes the mutex should be valid.
     *
     * @var int
     */
    
public $expiresAt 1440;

    
/**
     * Indicates if the command should run in the background.
     *
     * @var bool
     */
    
public $runInBackground false;

    
/**
     * The array of filter callbacks.
     *
     * @var array
     */
    
protected $filters = [];

    
/**
     * The array of reject callbacks.
     *
     * @var array
     */
    
protected $rejects = [];

    
/**
     * The human-readable description of the event.
     *
     * @var string|null
     */
    
public $description;

    
/**
     * The arbitrary attributes stored with the event.
     *
     * @var array<array-key, mixed>
     */
    
public $attributes = [];

    
/**
     * Set which user the command should run as.
     *
     * @param  string  $user
     * @return $this
     */
    
public function user($user)
    {
        
$this->user $user;

        return 
$this;
    }

    
/**
     * Limit the environments the command should run in.
     *
     * @param  mixed  $environments
     * @return $this
     */
    
public function environments($environments)
    {
        
$this->environments is_array($environments) ? $environments func_get_args();

        return 
$this;
    }

    
/**
     * State that the command should run even in maintenance mode.
     *
     * @return $this
     */
    
public function evenInMaintenanceMode()
    {
        
$this->evenInMaintenanceMode true;

        return 
$this;
    }

    
/**
     * State that the command should run even when the scheduler is paused.
     *
     * @return $this
     */
    
public function evenWhenPaused()
    {
        
$this->evenWhenPaused true;

        return 
$this;
    }

    
/**
     * Do not allow the event to overlap each other.
     *
     * The expiration time of the underlying cache lock may be specified in minutes.
     *
     * @param  int  $expiresAt
     * @param  bool  $releaseOnTerminationSignals
     * @return $this
     */
    
public function withoutOverlapping($expiresAt 1440$releaseOnTerminationSignals true)
    {
        
$this->withoutOverlapping true;

        
$this->expiresAt $expiresAt;

        
$this->releaseOnTerminationSignals $releaseOnTerminationSignals;

        return 
$this->skip(function () {
            return 
$this->mutex->exists($this);
        });
    }

    
/**
     * Allow the event to only run on one server for each cron expression.
     *
     * @return $this
     */
    
public function onOneServer()
    {
        
$this->onOneServer true;

        return 
$this;
    }

    
/**
     * State that the command should run in the background.
     *
     * @return $this
     */
    
public function runInBackground()
    {
        
$this->runInBackground true;

        return 
$this;
    }

    
/**
     * Register a callback to further filter the schedule.
     *
     * @param  Closure|bool  $callback
     * @return $this
     */
    
public function when($callback)
    {
        
$this->filters[] = Reflector::isCallable($callback) ? $callback : function () use ($callback) {
            return 
$callback;
        };

        return 
$this;
    }

    
/**
     * Register a callback to further filter the schedule.
     *
     * @param  Closure|bool  $callback
     * @return $this
     */
    
public function skip($callback)
    {
        
$this->rejects[] = Reflector::isCallable($callback) ? $callback : function () use ($callback) {
            return 
$callback;
        };

        return 
$this;
    }

    
/**
     * Set the human-friendly description of the event.
     *
     * @param  string  $description
     * @return $this
     */
    
public function name($description)
    {
        return 
$this->description($description);
    }

    
/**
     * Set the human-friendly description of the event.
     *
     * @param  string  $description
     * @return $this
     */
    
public function description($description)
    {
        
$this->description $description;

        return 
$this;
    }

    
/**
     * Set arbitrary attributes to store with the event.
     *
     * @param  array<array-key, mixed>  $attributes
     * @return $this
     */
    
public function withAttributes($attributes)
    {
        
$this->attributes array_merge_recursive($this->attributes$attributes);

        return 
$this;
    }
}
Онлайн: 2
Реклама