Я использую кэш DatabaseStore для управления мьютекс-файлами с помощью планировщика Laravel.
Я немного изменил app / Console / Kernel.php, чтобы это работало.
protected function defineConsoleSchedule()
{
$this->app->bind(SchedulingMutex::class, function() {
$container = Container::getInstance();
$mutex = $container->make(CacheSchedulingMutex::class);
return $mutex->useStore('database');
});
parent::defineConsoleSchedule();
}
Мне это нужно дляиметь возможность запускать планировщик на нескольких серверах, но для этого требуется общее хранилище.Поскольку у меня есть разные экземпляры Redis для всех серверов, я решил использовать кеш-память базы данных, которая предоставляется из коробки.Все работает нормально, но таблица БД с именем cache , где хранятся все вещи, не очищается даже после истечения срока действия кэша.
Вот некоторые кортежи из таблицы:
key value expiration
laravelframework/schedule-015655105069... b:1; 1539126032
laravelframework/schedule-015655105069... b:1; 1539126654
Итак, первый имеет срок действия 1539126032 (2018-10-09 23:00:32), текущее время 2018-10-10 08:09:45.Я ожидаю, что он будет очищен.
Вопрос в том, должен ли я реализовать что-то для поддержки этой таблицы, или Laravel должен справиться с этим?Что я делаю не так, если это долг Ларавела?