Игнорировать кеширование определенного файла с помощью APC - PullRequest
1 голос
/ 31 октября 2010

Есть ли способ предотвратить кеширование определенного кода с помощью APC ?Вариант использования выглядит следующим образом:

Приложение, которое находится в облаке и динамически изменяет свой размер (при необходимости вращая серверы вверх и вниз).Сценарий config.php должен знать о новых IP-адресах, когда они становятся доступными или недоступными.

Поскольку эти изменения происходят достаточно часто, а файл config.php довольно прост, было бы идеально не беспокоитьсяо очистке APC только для одного файла.

Удаление одного файла из APC определенно возможно, но, поскольку вы не можете получить доступ к APC через командную строку, решение оказывается довольно неэффективным.

Ответы [ 3 ]

2 голосов
/ 31 октября 2010

У меня есть похожий вариант использования.Я задавал себе один и тот же вопрос много раз, и я не смог найти решение.Однако мое решение состояло в том, чтобы создать быстрый скрипт, который позаботится об очистке кэша APC для каждого сервера.Каждый раз, когда я перестраиваю приложение, мне нужно нажать на файл на каждом сервере, чтобы очистить кэш кода операции, используя apc_clear_cache Если вам нужно очистить только один файл, вам может быть лучше с apc_compile_file

Надеюсьэто помогает.

1 голос
/ 17 ноября 2010

Да. Вы должны проверить директиву конфигурации apc.filter. Другой вопрос | PHP Документы

1 голос
/ 31 октября 2010

Я не знаю, как сделать то, что вы предлагаете, но вы должны быть в состоянии обойти это.

Очевидное решение - не хранить данные в php-файле. Поскольку у вас уже есть APC, почему бы просто не сохранить данные конфигурации в APC (в виде кэшированных данных, а не кодов операций).

Итак, что бы ни изменяло config.php, теперь сделало бы что-то вроде этого:

  1. Изменить не-php файл (что-то .ini или что-то в этом роде)
  2. Признать недействительной запись в кэше APC.

Когда config.php нужны данные, они обычно читают из кэша. Если кэш был признан недействительным, он считывает / анализирует данные из INI-файла, обновляет кэш и продолжает работать как обычно.

В конце концов, вы используете кэш кода операции для кэширования данных. Вместо этого вы должны использовать кеш данных. К счастью, APC предоставляет оба.

...