Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-05-2010 19:45:59

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

[ZF 1.10]Sauvegarder en mémoire la connexion au service web? Possible?

Bonjour à tous,

Mon application commence à être gonfler de plusieurs service web (Google, Youtube, Twitter, etc...) Je vais me concentrer sur Twitter pour l'exemple puisqu'il est plus simple mais mes questions s'applique à l'ensemble.

J'aimerais savoir s'il est possible de sauvegarder en mémoire, peu importe laquelle, la connexion qui est initialiser avec le service web. Par exemple, avec Twitter, on fait ceci:

Code:

$twitter = new Zend_Service_Twitter($username,$password);
$twitter->account->verifyCredentials();

À chaque fois qu'un page est télécharger, le script se connecte avec le serveur de twitter pour me connecter et récupérer les messages. Or, communiquer avec un autre serveur simplement pour me connecter avec un compte prend un certain temps et l'ensemble de mes services web combiner font mal à la vitesse de téléchargement du site.

Parfois, les services plantent et c'est un message de "connection timeout" après 30 secondes qui apparait. Je viens de vivre le problème avec les serveurs de Google Calendar qui ont planté la semaine dernière.

Au final, j'aimerais savoir s'il y a une solution pour améliorer tout ceci et pour éviter de réinitialiser toute connexion chaque fois. Est-ce que le service de Cache de Zend pourrait contribuer à ceci ?

Merci pour vos réponses

Hors ligne

 

#2 10-05-2010 21:41:29

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [ZF 1.10]Sauvegarder en mémoire la connexion au service web? Possible?

non pour éviter le timeout il faut trafiquer avec le service

il est possible mais dangereux de mettre en place un maintient de certaines connexion.
si la connexion est un objet purement php et non une ressource (comme un connexion à une bdd)
alors on peut sérialiser l'objet et le mettre en session à chaque fois que l'utilisateur revient on désérialise et on fait un échange avec le serveur ainsi le serveur remet son timeout à 0

cela implique de faire beaucoup d'échange avec le serveur pour rien.
on peut temporiser et mettre la date et l'heure du dernier échange en sessions et ne faire que des échange avec le serveur qu'après passé un certain temps suffisamment long mais inférieur au timeout.

reste que si le client fait une pause la connexion est perdue.
on peut le déterminer à l'avance avec la date de dernier appel s'il faut se re connecter.

enfin si on a absolument besoin de conserver la connexion on peut faire la même chose mais cette fois non pas dans la session mais dans un fichier ou une base commune à tous les utilisateurs
attention alors à la préméabilité entre les sessions
chaque fois qu'un utilisateur arrive on vérifie toute les connexion qui son proche du time out et on fait un appel pour elle

de cette façon le trafic général sur le serveur régénère en continu les connexion il n'y a que si aucun utilisateur n'invoque le serveur pendant un temps supérieur au timeout que les connexions tombes.

enfin si on maîtrise le serveur on peut faire un cron qui régénère les connexion à la place de le faire sur l'arrivé des utilisateur.

je déconseille de mettre en oeuvre ses solutions ces astuces sont à réserver qu'en cas de force majeure

A+JYT

Hors ligne

 

#3 10-05-2010 23:15:32

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [ZF 1.10]Sauvegarder en mémoire la connexion au service web? Possible?

Merci du conseils ! Alors ce sont des solutions de derniers recours mais non recommandés...

Je vais donc devoir m'y faire, je vais voir avec la cache si je peux faire quelque chose !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages