apc_delete () не работает в фоновом скрипте - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть конвертер фона оболочки на моем видео-сайте, и я не могу заставить APC удалить ключ при загрузке файла и обновлении его видимости. Сценарий структурирован так:

if(file_exists($output_file))
{ 
   $conn->query("UPDATE `foo` SET `bar` = 1 WHERE `id` = ".$id." LIMIT 1"); 
   apc_delete('feed:'.$id); 
}

Все работает отлично, за исключением APC, и это единственный скрипт на сайте, который столкнулся с этой проблемой. Я в тупике.

1 Ответ

1 голос
/ 22 апреля 2010

Вы не можете получить доступ к сегменту разделяемой памяти APC внутри apache из процесса, внешнего для apache. Если вы включите APC в режиме CLI, сценарии CLI просто получат свои собственные сегменты общей памяти.

Вы можете обойти это:

  1. Использование memcached вместо APC, который доступен из любой точки мира, а не из одного экземпляра apache
  2. Предоставление URL-адреса (например, http://example.com/delete.php?id=5), который можно вызвать из скрипта CLI. URL-адрес будет обрабатываться скриптом внутри apache и, следовательно, иметь доступ к APC.
...