Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: [PHP] APC  (Прочитано 9104 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« : 19-08-2011 11:38 » 

непонятная ситуация

запускаю скрипт из консоли, в котором
стоит проверка на удачную операцию

if (apc_store('what_listen', $what_listen) === false) echo "error";

И... понятно, что получаю ошибку...
Недолгий анализ показал, что
apc.enable_cli = off

Раз такое дело... то
запускаем
php -d apc.enable_cli=1 script.php

Ошибки нет...
Тогда в apc.ini устанавливаю флаг в 1
apc.enable_cli=1

И теперь уже спокойненько..

php script.php
Можно предположить что в кеш что-то нужное положили. Скрипт выполнился без ошибок

запускаю проверочный скрипт, но уже с желанием вытащить из кеша...
php test.php
Код:
	$what_listen = apc_fetch('what_listen');
if ($what_listen === false) {
echo "error";
} else {
echo $what_listen;
}
Результат - error.
В данном случае apc.enable_cli уже не причем.

Немного переделываю скрипт
Код:
if (apc_exists('what_listen')) {
    $what_listen = apc_fetch('what_listen');
if ($what_listen === false) {
echo "error";
} else {
echo $what_listen;
}
} else { echo "what_listen not exist";
}

Ключа-то нет....

Начинаю уходить в чтение доков.
Цитата
apc.enable_cli integer
    Mostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Under normal circumstances, it is not ideal to create, populate and destroy the APC cache on every CLI request, but for various test scenarios it is useful to be able to enable APC for the CLI version of PHP easily.
И что? Никто не запрещает...

А мне надо... чтоб кеш был доступен и в других приложениях.

зы
если я запускаю эти скрипты уже из браузера, то КЕШ становится доступен для всех остальных скриптов, которые проходят через web сервер.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 19-08-2011 11:59 » 

Где-то прочитал, что APC ограничено одним инстансом.

Наверное, пока придется довольствоваться костылем...
из консольного приложения отсылать запрос web серверу.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 19-08-2011 17:05 » 

Слав, APC и подобные кеши работают с shared memory и с общим родителем. Как несвязанные процессы PHP будут разделять память, когда нет ни одного запущенного процесса PHP (SYSV IPC они не используют)?

« Последнее редактирование: 21-08-2011 13:15 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines