2010-04-22 10 views
0

J'ai un convertisseur de fond de coque sur mon site Web de vidéo et je n'arrive pas à obtenir APC pour supprimer une clé pendant qu'un fichier est téléchargé et sa visibilité est mise à jour. Le script est structuré comme ceci:apc_delete() ne fonctionne pas en arrière-plan script

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

Tout fonctionne bien, sauf pour l'APC et c'est le seul script sur le site qui a eu ce problème. Je suis perplexe.

Répondre

1

Vous ne pouvez pas accéder au segment de mémoire partagée APC à l'intérieur d'apache à partir d'un processus externe à apache. Si vous activez APC en mode CLI, les scripts CLI reçoivent simplement leurs propres segments de mémoire partagée.

Vous pouvez contourner ce problème en:

  1. Utilisation Memcached au lieu d'APC, qui est accessible de partout, et pas seulement une instance apache unique
  2. Révéler une URL (par exemple http://example.com/delete.php?id=5) que vous pouvez appeler à partir votre script CLI. L'URL sera traitée par un script à l'intérieur d'Apache, et à ce titre, aura accès à APC.
+0

Génial! Merci pour la réponse rapide. – Jared