Laravel Cache Забудьте, помните, что Forever Cache не работает?
Я пытаюсь сохранить последнее время выполнения запланированного задания в Laravel. Однако кеш не обновляет дату. Я хочу, чтобы кеш запомнился, пока функция не будет вызвана снова.
public function setLastRun() {
Cache::forget('last_automation_api_run');
Cache::rememberForever('last_automation_api_run', function () {
return now()->toDateTimeString();
});
}
2 ответа
Вы должны использовать метод запомнить и забыть в разных функциях.
public function getLastRun() {
return \Cache::rememberForever('last_automation_api_run', function () {
return now()->toDateTimeString();
});
}
public function forgetLastRun() {
\Cache::forget('last_automation_api_run');
}
Каждый раз, когда вы удаляете кеш перед загрузкой значений кеша, делает логически неверным.
И ты должен
return
ценности, исходящие из
rememberForever
метод кеширования.
Если вы используете кластерный кеш, то есть вероятность, что первое изменение не распространилось через кеш, когда вы делаете второе. В этом случае (или в общем для того, что вы делаете) вы можете попробовать следующее:
public function setLastRun() {
Cache::put('last_automation_api_run', now()->toDateTimeString());
}
это должно бездумно перезаписывать текущее значение, а не удалять и читать его.