apc_fetch через некоторое время возвращает false - PullRequest
3 голосов
/ 21 мая 2011

Я использую apc_fetch для отображения индикатора выполнения при загрузке большого файла (видео).

apc_fetch работает нормально с файлом до 180 МБ. Но с большим файлом, apc_fetch возвращает false после 190Mb.

Обычно, если я загружаю большой файл (250 МБ), он показывает данные, пока «текущий» не станет <190 МБ. Когда дело доходит до 190 МБ, это возвращает ложь. нет данных. </p>

Мой apc conf в php.ini

extension=apc.so
apc.rfc1867 = on
apc.max_file_size = 1024M
upload_max_filesize = 1024M
post_max_size = 1025M
apc.shm_size = 512M
apc.rfc1867_freq= 0

Обновление об этом: Все еще делаю некоторые тесты, и я обнаружил, что apc_fetch начинает возвращать пустое значение через 1 час (60 минут). Я их установил, но все равно получаю.

apc.ttl = 0
apc.user_ttl = 0
apc.gc_ttl = 0

Я думаю, что проблема со временем.

Ответы [ 3 ]

1 голос
/ 06 февраля 2013

Вам нужно установить apc.rfc1867_ttl на большее значение. Определяет, как долго значения отслеживания закачки живут в кеше apc.

Значение по умолчанию составляет 3600 секунд, по истечении этого времени загрузка больше не отслеживается. Вот почему вы видите, что ничего не возвращается через час. Установите для него значение, несколько превышающее максимальное время загрузки, которое вы ожидаете.

0 голосов
/ 21 мая 2011

Убедитесь, что upload_max_filesize и post_max_size больше, чем файл, который вы загружаете.Насколько я могу судить, apc.max_file_size не влияет на это.

Также вам нужно изменить apc.rfc1867 = от 0 до 10k или 100k

Частота обновления должна бытьвнесена запись в пользовательский кеш для загрузки.Это может принимать форму процента от общего размера файла или размера в байтах, необязательно с суффиксом «k», «m» или «g» для килобайт, мегабайт или гигабайт соответственно (без учета регистра).

0 голосов
/ 21 мая 2011

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

Я рвал на себе волосы, пытаясь понять, почему это не работает. Я перезагрузил сервер, и он снова заработал. Никаких проблем с тех пор (неделю назад и немного). Я подозреваю, что могла быть какая-то ошибка, которая могла быть вызвана.

Так что рассмотрите возможность перезагрузки сервера, если это вариант для вас, и посмотрите, поможет ли это.

FYI. Я не имел дело с большими файлами, поэтому проблема может быть не связана.

...