Patrice Ferlet
Patrice Ferlet
Créateur de ce blog.
Publié le sept. 16, 2008 Temps de lecture: 2 min

Me suivre sur Mastodon

Multiplexing ou Thread PHP sous Copix

Après moult développement en tout genre avec tests et montée de tension nerveuse, j’ai enfin mis à jour mon système de multiplexage PHP sous Copix. A savoir que désormais vous pouvez spécifier des serveurs distants qui pourront gérer les threads.

Le système utilise désormais stream_select, bien plus performant que de simple fsockopen dans un tableau, je peux aujourd’hui utiliser les réponses serveurs de manière ordonnée par vitesse de réponse. L’exemple de retour ci-dessous utilise 2 serveurs, le distant a répondu plus vite que deux autres threads tournant sur mon poste local. Il est donc le premier à apparaître bien que ce soit le dernier de la liste des serveurs à être appelé.

array (
  0 => 
  CopixPPO::__set_state(array(
     'wait' => 1,
     'servename' => '192.168.0.13',
     'resp' => 'Test: ok j\'ai terminé après 1 secondes',
  )),
  1 => 
  CopixPPO::__set_state(array(
     'wait' => 4,
     'servename' => '127.0.0.1',
     'resp' => 'Test: ok j\'ai terminé après 4 secondes',
  )),
  2 => 
  CopixPPO::__set_state(array(
     'wait' => 5,
     'servename' => '127.0.0.1',
     'resp' => 'Test: ok j\'ai terminé après 5 secondes',
  )),
) 

Le temps de réponse total est bien de 5 secondes et non 10 (1+4+5), les 3 threads tournent donc bel et bien en parallèle.

Je vais bientôt commiter quelques autre modifications, comme l’utilisation de stream_socket_sendto au lieu de fwrite. Je peux donc annoncer que le module de thread sous Copix, passant très bien ses tests unitaires, est “stable”.

Voilà pour la bonne nouvelle du jour. Je vais donc dés ce soir commiter mes correction pour le module de blog, de thread, etc… sachant que de plus, le module de blog utilise les threads depuis quelques semaines sur ce blog que vous lisez en ce moment :)

comments powered by Disqus