Laravel Console Mutex

Пакет Laravel Console Mutex — предотвращает одновременное выполнение одной и той же команды. Это помогает избежать различного рода конфликтов в данных и лишнего расходования ресурсов сервера.

Установка пакета:

composer require illuminated/console-mutex

Для использования необходимо указать trait WithoutOverlapping:

use Illuminated\Console\WithoutOverlapping;

class ExampleCommand extends Command
{
    use WithoutOverlapping;

    // ...
}

Для того, чтобы предотвратить выполнение более 1 экземпляра консольной задачи одновременно пакет предусматривает ряд стратегий предотвращения:

  • file (default)
  • mysql
  • redis
  • memcached

Таким образом, можно выбрать БД или иное хранилище для данных о Mutex-е.

Функционал пакета таков, что есть возможность как просто блокировать выполнение команды, вызванное при запуске другой, так и подождать освобождения указаное время.

Можно для нескольких команд задать имя mutex-а, чтобы для них можно было использовать общий Mutex.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *