|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 15 ![]() |
Bonjour,
Je réalise un petit chat, où j'utilise un fichier pour stocker les messages des utilisateurs. Dans mon script pour ajouter des messages il faut donc que je m'assure que plusieurs utlisateurs en peuvent pas écrire en même temps dans le fichier. En cherchant sur le net j'ai trouvé ce petit bout de code qui permet de vérouiller un fichier en écriture. Code :
Si ce n'est pas le cas comment pourrais je faire un système de file d'attente pour attendre que le fichier soit dévérouillé pour écrire dedans ? |
||
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 13 ![]() |
Au lieu du if, il sufffit de mettre un while ! Par exemple :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 15 ![]() |
Donc flock ne gère pas de file d'attentes.
J'avais aussi pensé à ta solution que tu viens de de donner. Néanmoins y a quand même un petit souci. Avec ce système s'il y a 10 ou 15 utlisateurs qui sont en train de boucler pour savoir s'ils peuvent lire le message, l'ordre dans lequel les messages sont arrivés risquent de n'être pas bon. J'aimerai avoir un vrai système de file d'attente, où le prermier arrivé est le premier servi. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 13 ![]() |
Dans ce cas, je ne vois pas comment faire, puisque par définition internet est asynchrone. On ne sait pas justement dans quel ordre doivent arriver les messages qui sont sujets aux aléas des routeurs...!!!
Par contre, pour un internaute donné, il est possible de suivre un ordre qu'on se fixe en trackant l'internaute. Mais cela, il faut que tu le gères toi-même... |
|
|
00
|
|
|
#5 | |
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 13 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 13 ![]() |
En clair, imaginons qu'un internaute est en train d'écrire dans le chat, les autres sont par définition en attente de lecture ou d'écriture. Donc pas de pb !
Dès que celui qui est en train d'écrire libère le lock, c'est n'importe quel autre user qui essaye d'écrire et c'est là ton pb, d'après ce que je comprends. Or le temps de blocage pour une écriture est tellement faible que cela ne devrait pas jouer pour que les messages s'enchevêtrent comme tu le penses. Et si jamais cela arrivait, les users n'y verraient que du feu !!! C'est comme si l'un avait écrit avant l'autre, mais dans un chat, cela arrive tout le temps... Il y en a toujours qui répondent plus vite que les autres !!! Donc à mon avis, pas de pb ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com