Apache ne servira pas pendant le sondage

J’ai Wamp setup sur ma machine Windows 8.1 que j’utilise pour le développement. Mon problème est qu’Apache ne me sert pas de pages à partir de l’application Web spécifique sur laquelle je travaille dans un délai raisonnable pendant que j’exécute le script qui effectue l’interrogation. Voici le script et son implémentation back-end

window.fetch_messages = function () // I call this when my page is loaded { var last_message = $("div.message:last").attr('data-ai_id'); var project_id = getParameterByName('project-id'); // Another one of my helpers $.ajax({ url:'project_messages', type:'POST', data:{ project_id:project_id, latest_message:last_message }, timeout:50000, success:new_messages, error:function(data){ console.log(data); setTimeout(fetch_messages(),50000); } }); }; 

Et le backend

 do { $messages = $this->mentor_model->query_messages($this->project_id,$this->viewer, $this->last_message_id); if($messages) break; usleep(25000); } while(empty($messages)); echo json_encode($messages); exit; 

Tout cela fonctionne, mais je ne peux pas travailler correctement si Apache ne répond pas à mes autres demandes pour aller sur une autre page ou quelque chose dans un délai raisonnable. J’ai d’autres applications Web sur la machine et elles fonctionneront correctement pendant l’interrogation, mais l’application Web elle-même ne répondra pas aux autres demandes dans un délai raisonnable et cela ne se produit que lorsque je suis sur la page qui utilise ce script. En tant que note, je me suis également assuré que mysql ne donnait pas les problèmes ici en visitant une autre wapp (frappe) sur l’hôte local qui utilise mysql et qui répond correctement.

Quel est le problème avec Apache? Y a-t-il un cadre ou quelque chose que je dois changer? Il devrait être capable de gérer cette amende depuis son test juste moi.

C’est plus qu’un problème de gestion des ressources. L’utilisation complète des sessions était bloquée car le script en question n’autorisait pas l’utilisation des données de session pendant son exécution (car il utilisait les données).

Un simple session_write_close () placé dans la boucle juste avant d’appeler usleep () / sleep () sur le script a résolu mon problème.

Si vous avez fini d’utiliser les données de la session, vous devez les résoudre.