Системный кэш перевода Symfony3 в Memcache

#symfony #memcached #php-7 #symfony-3.1

#symfony #memcached #php-7 #symfony-3.1

Вопрос:

На данный момент я нашел пакет, который использует memcache в качестве источника перевода, но я ничего не нашел о том, как переместить кэш перевода из дискового хранилища в службу или непосредственно в memcache. Я также просмотрел параметры фреймворка, но не нашел в нем ничего полезного (или я слишком глуп, чтобы пользоваться Google ^^).

Мне нужно переместить файлы кэша в memcache по причине развертывания. У меня несколько серверов приложений. И для хранения кэша перевода и т.д. На диске Работает медленно, а панель заполняется при развертывании программного обеспечения (процесс php на производительных серверах приложений необходимо перезапустить). Мне было бы проще жить, если бы этот материал хранился в memcache, поскольку я бы просто очистил memcache, чтобы сбросить содержимое перевода.

кто-нибудь когда-нибудь пробовал это?

Ответ №1:

Первое, что приходит на ум, это создать консольную команду, которая использовала бы один загрузчик (например, SymfonyComponentTranslationLoaderXliffFileLoader ), а затем другой дампер (что-то реализующее SymfonyComponentTranslationDumperDumperInterface из этого пакета, например MemcacheDumper ).

В вашей команде вы бы загрузили переводы из одного источника загрузчиком (в форме SymfonyComponentTranslationMessageCatalogue ), а затем выгрузили их в другой.

Комментарии:

1. Хммм, я не собираюсь загружать часть. Я храню свои переводы в базе данных и распространяю изменения через пакет миграции doctrine. Мне нужно заменить файловые кэши внутри каталога перевода.

2. Ну, у меня есть 5 отдельных серверов приложений. В настоящее время я решаю проблему, предоставляя общий доступ к каталогу кэша через nfs, но я бы предпочел удалить это.

3. Еще кое-что: количество серверов приложений является переменным, поскольку они разделены на серверах по требованию.

4. Какая разница, сколько у вас серверов? Не воспринимайте это как сарказм, это не так, я действительно не понимаю. Как только вы что-то изменили в конфигурации или коде -> удалите и прогрейте кэш. Почему бы вам не придерживаться правила?

5. Ну, мне пришлось бы входить на каждый сервер приложений и выполнять это, поскольку мне не нужен каталог общего кэша nfs. Сам исходный код находится в общем каталоге nfs для веб-серверов / серверов приложений. у каждого сервера приложений есть свой собственный каталог кэша.