apc_delete()无法在后台脚本中工作

时间:2010-04-22 01:37:10

标签: php apc

我的视频网站上有一个shell后台转换器,当文件上传并且其可见性更新时,我似乎无法让APC删除密钥。脚本的结构如下:

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

除了APC之外,一切正常,这是网站上唯一遇到此问题的脚本。我很难过。

1 个答案:

答案 0 :(得分:1)

您无法从apache外部的进程访问apache内的APC共享内存段。如果在CLI模式下启用APC,则CLI脚本只会接收自己的共享内存段。

您可以通过以下方式解决此问题:

  1. 使用memcached代替APC,可以从任何地方访问,而不仅仅是单个apache实例
  2. 公开您可以从CLI脚本调用的URL(例如http://example.com/delete.php?id=5)。该URL将由apache内的脚本处理,因此可以访问APC。