Jurassic Dev et les nouvelles du site.

Groar! Cela fait un moment que je n’ai pas sortie ma plume pour vous écrire du jurassic. Ces dernière semaines vous avez pu ressentir quelques ralentissement au niveau du site, c’est tout à fait normal et tout est normalement réglé.
Du coup un widget de Stream a été développé et mis en place, vous pouvez y accéder via la section « Baston en direct ». Les streams sont actualisés toutes les 10 minutes afin de ne pas surcharger les appels à des sites externes.
Par ailleurs d’autres surprises sont à venir dans les prochaines semaines.

PS: Si des personnes sont intéressées par le fonctionnement de ce widget je me ferais un plaisir d’y répondre via les commentaires de l’article.

GROAR

Publié par

Zekth

I'm da Web Raptorz Mastaz

7 réflexions au sujet de « Jurassic Dev et les nouvelles du site. »

  1. en gros je fais la mise en cache dans la BDD avec une tache Cron avec le code suivant :

    class Stream {
    var $url;
    var $name;
    var $channel_count;
    }
    //$streams est le tableau des noms de stream
    foreach ($streams as $element)
    {
    $stream = $element;
    //$json_file = @file_get_contents("http://api.justin.tv/api/stream/list.json?channel={$stream}", 0, $context, null);
    $json_file = @file_get_contents("http://api.justin.tv/api/stream/list.json?channel={$stream}", 0, null, null);
    if (!$json_file)
    {
    echo $i . " : " . $stream . ' timeout XXXXXXXXXXXXXX
    ';
    }else{
    $json_array = json_decode($json_file, true);
    if (count($json_array) != 0)
    {
    $url = $json_array[0]['channel_url'];
    //if (strtolower($json_array[0]['channel']['login']) == strtolower("{$stream}")) {
    $collectionStream[$i] = new Stream();
    $collectionStream[$i]->url = $json_array[0]['channel']['channel_url'];
    $collectionStream[$i]->channel_count = $json_array[0]['channel_count'];
    $collectionStream[$i]->title = $json_array[0]['title'];
    $collectionStream[$i]->name = $json_array[0]['channel']['login'];
    $sql= "replace into wp_bgpstream_cache (name,url,count,title) values('".$collectionStream[$i]->name."','".$collectionStream[$i]->url."','".$collectionStream[$i]->channel_count."','".$collectionStream[$i]->title."')";
    mysql_query($sql);
    echo $i . " : " . $stream. ' ajouté
    ';
    }else{
    $sql="replace into wp_bgpstream_cache(name,url,count,title) values('".$stream."','','','')";
    mysql_query($sql);
    echo $i . " : " . $stream. ' ajouté vide
    ';
    }
    };
    $i++;
    }

    Et après dans le widget je fais juste une requete dans la bdd

  2. Wokay ! Well done 😉

    Mais j’me pose une question, est ce que l’API justin.tv est construite pour gérer les requêtes de masses ?

    Parce que du coup, si j’ai bien compris, tu fais tafer votre serveur pour les requêtes en tâche Cron régulièrement ainsi que les requêtes BDD ponctuellement ; cependant en faisant des requêtes AJAX et un parsage js tu fais tafer leur serveur et le navigateur des utilisateurs et du coup t’économises de la puissance sur votre serveur !

    Si leur serveur est fait pour tenir ce genre de trucs, ça peut « économiser » votre serveur ^^

    Ceci dit ça bouffe probablement pas grand chose ^^

  3. Des fois leur serveur réponds pas pour certains appels, du coup j’ai changé le timeout du http context et je shuffle le tableau de streams pour changer l’ordre.

    Donc à chaque passage j’ai des streams qui me sortent un timeout mais vu qu’ils changent constamment de place dans le tableau ils ont plus de chance d’avoir une réponse à l’appel d’après.

    Le problème c’est pas que ça bouffe grand chose en fait c’est juste que le serv mets du temps à répondre donc si je fais un appel directe sur ma page ba elle est à la ramasse.

  4. Ah oui en effet c’est problématique si le plugin met mille ans à se charger à cause d’un temps de réponse trop lent ^^’
    Ben jolie manœuvre pour contourner le problème en tout cas, merci pour ce plugin qui va aider à faire passer le temps en baston =D

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *