Problème cache de flux rss chez free

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème cache de flux rss chez free

par pirquessa » 31 mai 2006, 18:47

en esperant que cela ne se reproduise pas Wink
Je crois que c'est la solution la plus adapté que je vais appliquer ... :oops:

par Vorkosigan » 31 mai 2006, 13:50

Comme je l'ai répondu lors des propositions, les systèmes proposés ne sont souvent pas applicables à cause des options utilisés sur le flux rss de lan (lan.php5)
A vrai dire, si. Il est simplement necessaire de faire quelques adaptations des solutions proposees.
Ex: dans ce que proposait Hubert Roksor, tu peux tout a fait generer plusieurs feeds au lieu d'un seul.
Vous croyez que si je re déplace le cache sur mon compte 1&1 les "problèmes" (je ne les ai jamais vu, c'est un seul site qui m'a signalé ca...) vont disparaitres ? Ca serait domage de surcharger le site pour les flux si ont peut les faire marcher chez free...
Sans information sur l'erreur rencontree chez Free, on ne pourra pas repondre a cette question. :?
Et si tu ne peux pas avoir des informations sur cette erreur, le mieux est de laisser tomber... en esperant que cela ne se reproduise pas :wink:

par pirquessa » 31 mai 2006, 12:54

Le gars ne m'a pas donné plus de precisions... j'ai cité son mail dans mon premier message.

J'avais délocalisé les flux rss car il y avait telement de demande que 40% de ma bande passante était consomée par ceux ci (plus de 20 sites les utilisent et souvent sans cache) . J'étais sur un compte premium 1&1 et à la vitesse ou ca allait, j'allais vite depasser les 20Go/mois de consomation ... Ce qui n'est maintenant plus un problème, je viens de changer de compte, le premium n'étant plus suffisant.
pirquessa a écrit:
il n'y a pas de solutions à mon problèmes?
En dehors de toutes celles qui ont été proposées ? non. Si tu ne changes pas le fonctionnement de ton application, tu ne le règleras jamais.
Comme je l'ai répondu lors des propositions, les systèmes proposés ne sont souvent pas applicables à cause des options utilisés sur le flux rss de lan (lan.php5)

Question, pourquoi ne ferais tu pas un script pour gerer l'accès aux flux rss, une sorte de mise en cache dans un script que tu fournirrais aux sites qui utilisent tes flux? Confused
@+
J'y ai pensé, mais beaucoups ne savent déjà pas integrer un flux rss alors mettre en place un cache... (je les aide déjà pour la mise en place)
ton compte Free reçoit autant de hits que ton site
Mon compte free peut subir 10 000 appels (pour le meme flux) pendant 2h30 et le site principal ne recevra qu'une seule requette pour generer le flux demandé.


Vous croyez que si je re déplace le cache sur mon compte 1&1 les "problèmes" (je ne les ai jamais vu, c'est un seul site qui m'a signalé ca...) vont disparaitres ? Ca serait domage de surcharger le site pour les flux si ont peut les faire marcher chez free...

par Invité » 31 mai 2006, 11:38

C'est pourquoi avec ce syteme je reduit fortement les acces à mon site principal (un meme site demandant souvent le flux plusieurs fois par minutes)
:?: "Plusieurs fois", meme s'il y a plusieurs sites ca ne fait pas beaucoup sincerement. J'ai donc beaucoup de mal a comprendre la justification de la mise en place d'un cache delocalisé. :?
Si vraiment tu as des problemes de perfos, il n'est a mon avis pas necessaire d'utiliser un systeme de cache aussi compliqué et je verrais plutot 2 pistes :
- optimisation du code generation de ton feed RSS... il y a toujours quelque chose a faire de ce cote-la
- gestion d'un cache en local (il y a des outils qui font ca tres bien, comme PEAR)
Roooo, il n'y a pas de solutions à mon problèmes? meme pas une hypothèse sur le pourquoi un flux ai put être indisponnible ? :oops:
Comme cela a ete dit plus haut, sans infos complementaires non.
=> en cas de 404, c'est un probleme de synchro dans ton code
=> en cas de 408, c'est un probleme de disponibilite chez Free
...

par Hubert Roksor » 31 mai 2006, 09:38

il n'y a pas de solutions à mon problèmes?
En dehors de toutes celles qui ont été proposées ? non. Si tu ne changes pas le fonctionnement de ton application, tu ne le règleras jamais.
meme pas une hypothèse sur le pourquoi un flux ai put être indisponnible ?
Ben en fait t'as même pas dit en quoi il était indisponible... (erreur 500 par exemple) Mais inutile de chercher trop loin, ton compte Free reçoit autant de hits que ton site et les trois autres cités plus haut réunis, à priori c'est à cause de ça.

par momox » 31 mai 2006, 08:23

Question, pourquoi ne ferais tu pas un script pour gerer l'accès aux flux rss, une sorte de mise en cache dans un script que tu fournirrais aux sites qui utilisent tes flux? :?
@+

par pirquessa » 30 mai 2006, 22:37

Il n'y a pas une infinité d'options utilisés. Tu peux voir ici le nombre de flux stockes : http://actulan.free.fr/dates.php5

Cependant la plupart d'entre eux sont affichés sur des pages trés utilisés des sites comme ici :

http://www.bf2fr.com/
http://www.forum-cs.com/actulan
http://www.bf-cafe.com/bf2/

Et tres souvent sans cache de la part des sites web. C'est pourquoi avec ce syteme je reduit fortement les acces à mon site principal (un meme site demandant souvent le flux plusieurs fois par minutes)


Roooo, il n'y a pas de solutions à mon problèmes? meme pas une hypothèse sur le pourquoi un flux ai put être indisponnible ? :oops:

par Invité » 30 mai 2006, 16:31

En fait, je ne pense pas que tu abordes le probleme de la bonne maniere...

A la base, tu veux faire un cache chez Free du fait qu'un grand nombre de connexions se fait sur ton feed RSS. Le cache n'a d'interet que si le nombre de personnes accedant a un feed particulier est important.
Seulement, d'un autre cote tu nous expliques que ton feed a de tes nombreuses options... ce qui tend a nous faire croire que chaque utilisateur utilise ton feed avec des options differentes... auquel cas, un cache n'a aucune utilite.

Au final, de deux choses l'une :
- soit tu as des dizaines d'utilisateurs qui utilisent les memes options en simultané et tu peux effectivement faire un cache (mais pas géré avec des timeouts qui sont performants)
- soit chaque utilisateur a des parametres differents... auquel cas le probleme ne sera pas resolu avec un cache, la seule solution etant d'optimiser la generation du feed rss

par pirquessa » 30 mai 2006, 06:58

Je ne peux pas faire ce que tu propose. En effet, mon flux rss de lan propose de multiples options qui font qu'il y aurait une infinité de flux à uploader ...
Avec ce système on oploade que les flux dont les adresses sont demandés
Je vais vous donner le script qui fait le cache du flux aux nombreuses options et vous verrez que je suis obligé de fonctionner comme ca :

Code : Tout sélectionner

<?php include('config.php'); Header("content-type: application/xml"); $url = (!isset($_GET['dep']) AND !isset($_GET['jeu']) AND !isset($_GET['mois']) AND !isset($_GET['annee']) AND !isset($_GET['annee'])) ? '' : ''; $url .= (isset($_GET['dep']) OR isset($_GET['dep']) OR isset($_GET['jeu']) OR isset($_GET['mois']) OR isset($_GET['annee'])) ? '?' : ''; $url .= (isset($_GET['dep'])) ? 'dep='.$_GET['dep'] : ''; $url .= (isset($_GET['jeu'])) ? '&jeu='.$_GET['jeu'] : ''; $url .= (isset($_GET['mois'])) ? '&mois='.$_GET['mois'] : ''; $url .= (isset($_GET['annee'])) ? '&annee='.$_GET['annee'] : ''; $url = ($url{1} == "&") ? substr($url, 0, 1).substr($url, 2) : $url; $fichier = str_replace('&','_', $url); $fichier = str_replace('=','-', $fichier); $fichier = str_replace('?','', $fichier); $fichier = ("" == $url) ? 'lans' : 'lans_'.$fichier; if(@filectime('rss/'.$fichier.'.xml') + $nbr_minute <= time()) { @unlink('rss/'.$fichier.'.xml'); if(FALSE === file_exists('rss/'.$fichier.'.xml')) { file_put_contents('rss/'.$fichier.'.xml', file_get_contents('http://www.actu-lan.com/rss/lans.php'.$url)); } } echo file_get_contents('rss/'.$fichier.'.xml'); ?>
Enfin, je vois pas d'autres solution en tout cas ...

Je vois pas d'ou viendrait le problème mis à part si free limite le nombre d'acces simultanés à une page ... :oops:



EDIT:

Il n'est pas embetant de mettre les options dans l'adresse car une fois que le site à choisit ses options, il en change rarement ...

par alexbad » 29 mai 2006, 23:04

Je ne sais pas exactement comment fonctionne ton système, mais voilà comment il devrait:
  1. à chaque fois qu'une news est ajoutée/retirée/mise à jour, génère le fichier XML et uploade-le chez Free.
  2. c'est tout ;)
Ouais, et le fichier peut être généré automatiquement, ce qui devient très intéressant, évitant d'avoir à faire des manipulations manuelles chaque fois.

par Hubert Roksor » 29 mai 2006, 15:35

Essaie de relire mes précédents posts... réponse 304, nombre de hits.

J'ai regardé sur le site, le code pour inclure le fil RSS sur un site est malheureusement extrêmement inefficace parce qu'à chaque page vue l'intégralité du flux RSS est retéléchargée de chez Free. Si tu ne peux pas utiliser de fichiers statiques et faire en sorte d'utiliser des réponses 304 (voire 226) alors ton problème est insoluble, désolé. (enfin, insoluble sans investissement, si tu achètes un serveur dédié pour ton flux RSS ça marchera mieux)

par pirquessa » 28 mai 2006, 22:09

Ben on teste si le fichier à été récupéré depuis moins de $nbr_minute (qui est bien en minutes *60 ;) ) si il est trop vieux on supprime et on le re prend.

Sinon si le fichier est bon on l'inclu ...

Le script marche tres bien en local.

Je ne peux pas faire ce que tu propose. En effet, mon flux rss de lan propose de multiples options qui font qu'il y aurait une infinité de flux à uploader ...
Avec ce système on oploade que les flux dont les adresses sont demandés

(ce script est un dérivé de celui dont je te parle mais c'est exactement le meme fonctionnement)

Tu as la tous les fichier rss stockés ici : http://actulan.free.fr/dates.php5


Raaa, encore une personne qui vient de me dire que les rss marchaient pas ... Je comprend pas pourquoi ...

http://actulan.free.fr/news.php5
http://actulan.free.fr/lans.php5
http://actulan.free.fr/forum.php5

Toutes les options et infos :http://www.actu-lan.com/actu_rss.html

par Hubert Roksor » 28 mai 2006, 15:57

Au fait, combien de hits par jour as-tu sur ces flux RSS ? Parce que tout ce que j'ai dit peut s'appliquer en local, tu n'es pas obligé d'utiliser PHP pour tous tes flux, surtout s'ils changent rarement. De plus, tes scripts devraient absolument générer une réponse 304 à chaque fois que cela est possible (voir RFC 2616).

Autre chose, ton fichier CSS (http://www.actu-lan.com/pages/menu.css) contient une référence à une image qui n'existe pas. (http://www.actu-lan.com/pages/images/fleche.GIF)

par Hubert Roksor » 28 mai 2006, 15:48

Err... es-tu sûr que ce script fonctionne correctement ? Parce que si $nbr_minute est un nombre de minute ça ne va pas avec time() qui lui est en secondes. Ensuite, pourquoi tester la présence de "news/news.xml" ? si ce fichier existe il empêche la mise à jour du flux :-k

Mon conseil, fais ce que je préconise dans mes précedent post: à chaque mise à jour des news, regénère un fichier ("news.rss") que tu uploades par FTP chez Free, et utilise un .htaccess avec "AddType rss application/rss+xml" pour indiquer le type de fichier. Au pire, si Fre n'aime pas AddType, nomme le fichier "rss.xml" ça devrait marcher aussi. De cette façon, tu n'auras plus de problèmes avec PHP ou avec le firewall de Free (les hébergeurs mutualisés n'aiment pas trop les fopen() sur des URLs).

par pirquessa » 26 mai 2006, 17:53

Il n'y a pas de Mysql du tout :

Code : Tout sélectionner

<?php include('config.php'); Header("content-type: application/xml"); if(@filectime('rss/news.xml') + $nbr_minute <= time()) { @unlink('rss/news.xml'); if(FALSE === file_exists('news/news.xml')) { file_put_contents('rss/news.xml', file_get_contents('http://www.actu-lan.com/rss/news.php')); } } echo file_get_contents('rss/news.xml'); ?>
Voila tout le code, tu remarquera qu'il est trés simple ... le fichier config contient les différentes options pour tous les flux ...

Donc le jecomprend pas pourquoi le gars me dit ca ... :oops: