Используя symfony, я создал службу кэширования в моих services.yaml:
cache.api:
class: Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter
arguments: ["api", 0, "%api_directory%"]
Все идет хорошо, пока не закончится время жизни кэша (здесь значение по умолчанию равно 0, но при его использовании я определить другую жизнь). В данный момент обновление кэша происходит неправильно без сообщения об ошибке:
[2020-03-18T10:44:47.114058+01:00] app.INFO: Lock acquired, now computing item "a6055b27457830722db4330abe64cbbb5bb1c06b59ddb5e7cfad9f30366dcc22" {"key":"a6055b27457830722db4330abe64cbbb5bb1c06b59ddb5e7cfad9f30366dcc22"} []
[2020-03-18T10:44:47.327730+01:00] api.INFO: SOAP Request (GetClubTeams - 0.21): array ( 'Club' => 'N051', 'Season' => 20, ) [] []
[2020-03-18T10:44:47.328842+01:00] app.WARNING: Failed to save key "a6055b27457830722db4330abe64cbbb5bb1c06b59ddb5e7cfad9f30366dcc22" of type array. {"key":"a6055b27457830722db4330abe64cbbb5bb1c06b59ddb5e7cfad9f30366dcc22","exception":null} []
[2020-03-18T10:44:47.329458+01:00] app.INFO: Lock acquired, now computing item "bf0fe848cc7a650db70ab3ca49a14cbf38f7f7403e7364e2537ada2fd3d1d58d" {"key":"bf0fe848cc7a650db70ab3ca49a14cbf38f7f7403e7364e2537ada2fd3d1d58d"} []
[2020-03-18T10:44:47.474883+01:00] api.INFO: SOAP Request (GetSeasons - 0.15): array ( ) [] []
[2020-03-18T10:44:47.475947+01:00] app.WARNING: Failed to save key "bf0fe848cc7a650db70ab3ca49a14cbf38f7f7403e7364e2537ada2fd3d1d58d" of type array. {"key":"bf0fe848cc7a650db70ab3ca49a14cbf38f7f7403e7364e2537ada2fd3d1d58d","exception":null} []
Это не может быть проблемой с разрешениями, поскольку вначале кэшированные данные правильно сохраняются и извлекаются из приложения.
Мне нужно удалить все кэшированные данные, чтобы они снова заработали (в противном случае api вызывается все время, поскольку кеш не работает).
Есть идеи?
РЕДАКТИРОВАТЬ:
При отладке кода symfony проблема возникает в методе Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter
в doSave
.
Эта строка:
if (!@symlink($file, $this->getFile($id, true, $tagFolder))) ...
Удаляя @
, я получаю ошибку:
Warning: symlink(): File exists
Итак, символическая ссылка уже существует, но я не понимаю, как symfony справиться с этим. .