Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 21h54   #1
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Par défaut Enchainements de traitements asynchrones

Bonjour,

j'ai construis une petite appli Flex avec pas mal de méthodes issues d'un remoteObject qui sont lancées soit manuellement (boutons) soit automatiquement via un timer qui se relance indéfiniment. En fait pour être clair, une seule méthode est lancée via le timer toutes les 5 secondes et les autres méthodes sont lancées via l'utilisateur.

Les méthodes lancées marchent bien unitairement mais parfois lorsqu'elles se "chevauchent" au cours du temps entre elles, elles sortent en erreur (faultEvent) parfois. C'est assez frustrant et je me demande bien ce qui peut poser ce problème puisque normalement en traitement asynchrone, les méthodes serveur peuvent se lancer indépendamment les unes des autres non ?

J'ai un backend en php (zend) qui fait souvent appel à une base MySQL. Afin de gagner en temps de traitement et pour essayer de résoudre ce problème, j'ai fais de cette connexion une connexion persistante :

Code php :
1
2
 
$this->_connexion = new PDO('mysql:host=www;dbname=xxx', 'yyy', 'zzz', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION, PDO::ATTR_PERSISTENT=>true));

J'ai l'impression que cela va mieux (sans pour autant en être sur). Avez vous déjà rencontré ce genre de comportement ? Et plus important encore : avez vous trouver une solution ?

Merci
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 18h49   #2
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
salut

tu as verifié les logs de ton serveur MySQL ?
s'il y a une erreur FaultEvent, il serait bien d'avoir le descriptif complet de l'erreur ...

quand tu mets en place ce genre d'appli, pense au DEBUG en loggant absolument tout, ca aide pour trouver les erreurs !
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 20h56   #3
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Salut,

quand tu parles du debug, tu parles de la vérif des logs php/mysql/apache et de l'affichage de l'event faultEvent ou plus ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 12h24   #4
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
ces logs la sont la base, mais le "ou plus" (systeme de log intégré a ton appli) permet de parfaitement suivre le fonctionnement de ton appli et donc des problemes qui peuvent survenir (coté flash/coté php).
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 12h28   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Salut,

Citation:
Envoyé par Lorenzo77 Voir le message
(systeme de log intégré a ton appli)
Qu'entends tu par là ? Ces logs seront le résultat sous forme de texte des event fault et result non ?
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 17h32   #6
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
oui mais pas uniquement.

ex :
dans mon appli je log chaque appelle a une fonction (constructeur/méthode/destructeur) et tous les blocs importants de l'appli pour bien suivre le cheminement du code.
tu peux aussi rajouter les valeurs des variables ou objets complexe mais ca devient lourd pour une grosse appli (le fichier log devient chiant a lire -> (pour ca qu'il est interessant de faire un DEBUG sur plusieurs niveaux)).

du coté de PHP c'est trés simple, tu peux utiliser PEAR (paquet Log) qui contient tout ce qu'il faut ou utiliser les extensions pour Firefox (trés trés pratique) tel que firebug et tous ses ad-dons pour les différents langages (as3/php/....)
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 18h03   #7
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Quand tu dis que tu log chaque appel à une fonction, écris tu dans tes fonctions en premiere instruction un appel via la fonction de log ou alors as tu trouvé une méthode moins rébarbative pour le faire ?

En gros fais tu :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
protected function log(nomFonction:String):void
{
// traitements des logs..
}
 
protected function uneFonctionImportante1():void
{
log("uneFonctionImportante1");
// traitements...
}
 
protected function uneFonctionImportante2():void
{
log("uneFonctionImportante2");
// traitements...
}
 
protected function uneFonctionPasImportante1():void
{
// traitements...
}
ou as tu un moyen plus élégant de le faire ? Sinon comment archives tu tes logs ? Sous forme de fichiers ?

Un ad-on as3 pour firebug ? Humm intéressant...
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 11h05   #8
Membre Expert
 
Avatar de Lorenzo77
 
Inscription : mai 2006
Messages : 1 294
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2006
Messages : 1 294
Points : 1 220
Points : 1 220
et oui, c'est bien le principe !
ca peut paraitre chiant mais c'est sacrément utile quand l'appli n'est plus entre tes mains (tripoté par des clients) pour vérifier la manière dont elle est utilisé et évidemment suivre toutes les erreurs qui peuvent survenir.
pour ca tu ne peux pas te contenter des "trace()", le plus simple est d'avoir un fichier log (texte) par client (IP) stocké sur le serveur avec en plus un fichier log général regroupant toutes les erreurs.



pour firebug + as3 voir en bas de cette page le message de the Pretender : http://www.developpez.net/forums/d99...nt-as3-button/

firebug + php = firephp

tu as aussi flashtracer comme addon pour FF qui permet d'afficher dans FF tous les trace() fait par une appli.
__________________
Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
Mon blog : http://web.codeur.free.fr
Lorenzo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 12h02   #9
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Je prends note de tout ceci, merci
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 19h42   #10
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Un petit article intéressant et bien construit ici au passage expliquant la mise en place d'un serveur Zend et du debug associé.
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h03.


 
 
 
 
Partenaires

Hébergement Web