IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérouiller un fichier lit 100 fois en même temps


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Par défaut Vérouiller un fichier lit 100 fois en même temps
    Bonjour,

    Dans le cadre d'un projet que j'effectue, je cherche à "locker" un ficher en lecture/écriture pour pouvoir mettre un autre script qui essayerait d'y accéder en "attente".

    Pour tester tout cas, j'exécute une petite page en multithreaning avec CURL qui tente tous d'accéder a un fichier pour l'incrémenté. Hors c'est justement là que sa coince.

    Voici ce que j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function flood() {
    	while (1) {
    		if ((($handle = fopen("count.txt","r+")) === false) OR !flock($handle, LOCK_EX)) {
    			if (!file_exists("count.txt")) file_put_contents("count.txt","");
    		usleep(200000); // sleep 0.2 sec
    		continue;
    		}
    		$content = "";
    		while (!feof($handle)) $content .= fread($handle,200);
    		fseek($handle,0);
    		sleep(5);
    		$content = $content + 1;
    		fwrite($handle,$content);
    		fclose($handle);
    		return;
    	}
    }
    flood();
    hors en l'exécutant 500 fois en multithreaning ... j'obtiens 11

    Merci encore pour tout aide.

    Cdt,
    Tsukasa.

  2. #2
    Membre éclairé

    Inscrit en
    Janvier 2006
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 44
    Par défaut
    flock ne fonctionne pas sur NFS ni sur les vieux systeme type FAT.

    Ce n'est pas ton cas ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Par défaut
    Si, j'exécute mes tests sur windows seven, mais là n'est pas le problème, il y a seulement LOCK_NB qui n'est pas dispo sur ce système, hots je ne l'use pas.

  4. #4
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 283
    Par défaut
    A la place de file_put_contents si tu faisais un :
    D'après la doc php file_put_contents :
    Revient à appeler les fonctions fopen(), fwrite() et fclose() successivement.
    Donc ca peut poser problème dans ton cas de figure.

    Sinon fait un fopen(...,'w+') et ne fais plus le : if (!file_exists("count.txt")) file_put_contents("count.txt","");

Discussions similaires

  1. Exécuter 100 tâches en même temps
    Par pc152 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 19/10/2013, 21h48
  2. manipulation de fichier csv et txt en même temps, heelpe
    Par leila32 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/04/2013, 15h04
  3. [PHP 5.2] recevoir un fichier et l'uploader en même temps
    Par pmithrandir dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2010, 00h46
  4. Ne pas lancer une interface plusieurs fois en même temps
    Par Le Marlou dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 26/01/2010, 12h34
  5. Ouvrir la même application 2 fois en même temps
    Par vitch8 dans le forum Delphi
    Réponses: 4
    Dernier message: 02/03/2007, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo