%PDF- %PDF-
Direktori : /home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ |
Current File : //home/silvzytp/crm-ind-code/vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php |
<?php namespace Illuminate\Console\Scheduling; use DateTimeInterface; use Illuminate\Contracts\Cache\Factory as Cache; class CacheSchedulingMutex implements SchedulingMutex, CacheAware { /** * The cache factory implementation. * * @var \Illuminate\Contracts\Cache\Factory */ public $cache; /** * The cache store that should be used. * * @var string|null */ public $store; /** * Create a new scheduling strategy. * * @param \Illuminate\Contracts\Cache\Factory $cache * @return void */ public function __construct(Cache $cache) { $this->cache = $cache; } /** * Attempt to obtain a scheduling mutex for the given event. * * @param \Illuminate\Console\Scheduling\Event $event * @param \DateTimeInterface $time * @return bool */ public function create(Event $event, DateTimeInterface $time) { return $this->cache->store($this->store)->add( $event->mutexName().$time->format('Hi'), true, 3600 ); } /** * Determine if a scheduling mutex exists for the given event. * * @param \Illuminate\Console\Scheduling\Event $event * @param \DateTimeInterface $time * @return bool */ public function exists(Event $event, DateTimeInterface $time) { return $this->cache->store($this->store)->has( $event->mutexName().$time->format('Hi') ); } /** * Specify the cache store that should be used. * * @param string $store * @return $this */ public function useStore($store) { $this->store = $store; return $this; } }