2009-10-01 9 views
1

J'ai finalement eu une seconde pour regarder en streaming, les démons, et les tâches cron et tous les joyaux construits autour d'eux! Mais je ne suis pas clair sur comment/quand utiliser ces choses.Streaming, Daemons, Cronjobs, comment les utilisez-vous? (en Ruby)

J'ai quelques questions:

1) Si je voulais avoir un site Web qui est resté constamment mis à jour, en temps réel, avec mon activité amis Facebook RSS, mise à la minute Amazon critiques de livres sur mon livres préférés, et mon flux Twitter, je voudrais juste créer une mise en œuvre de streaming personnalisé en utilisant la gemme Daemon, la gemme ruby-yali pour le streaming du contenu, et la gemme Whenever, qui pourrait dire, vérifier ces sites toutes les 3-10 secondes pour voir si le contenu que je cherche a changé? Est-ce ainsi que cela fonctionnerait? Ou est-ce généralement/de préférence fait différemment?

2) Est-ce que (1) est trop gourmand en processeur? Existe-t-il une meilleure façon de le faire, un meilleur moyen de diffuser du contenu en direct, étant donné que le site Web sur lequel vous souhaitez recevoir des mises à jour en temps réel ne comporte pas d'API de diffusion en continu? Je pense juste à envoyer une requête toutes les quelques secondes dans une petite application ruby ​​séparée (avec des démons et des cronjobs), obtenir le résultat json/xml, utiliser nokogiri pour supprimer les choses dont je n'ai pas besoin, puis passer par le petite liste de commentaires/livres/messages/etc., construire un flux de ce qui a changé, et en utilisant Juggernaut ou quelque chose pour pousser ces changements à une application rails. Cela fonctionnerait-il?

Je suppose que tout cela se résume à la question:

Comment le streaming en temps réel du dernier contenu de certains travaux de site? Comment faites-vous? ... donc si quelqu'un est sur mon site, ils peuvent voir en temps réel le nouveau message ou le nouveau livre qui vient de sortir?

Dans l'attente de vos réponses, Lance

Répondre

1

Eh bien d'abord, si un site Web qui ne fournit pas une API, il est une forte indication que ce n'est pas légal pour analyser et extraire leurs données, mais vous feriez mieux vérifier leurs conditions d'utilisation et politique de confidentialité.

Personnellement, je ne suis pas au courant de quelque chose appelé "Streaming API", mais en supposant qu'ils ont une API, vous devez toujours tirer les résultats fournis par elle (xml, json, ....), les analyser et les présenter à l'utilisateur. La stratégie varie en fonction de votre type d'application:

  1. application Desktop: vous ne pouvez extraire les données directement, analyser et fournir à l'utilisateur, de nombreuses applications sont comme ça comme Twhirl.
  2. Application Web: vous devez alors réduire le temps d'extraction des données. Généralement, vous allez extraire les données de l'API et les stocker. Cependant, stocker les données est un peu difficile! Vous ne voulez pas que votre base de données soit verrouillée pour l'application par les requêtes d'extraction extrêmes que vous obtiendrez pour récupérer les données. Une façon de le faire est d'utiliser la méthodologie push; Suivez l'option 2 dans ce cas pour obtenir les données, puis poussez vers l'utilisateur. Si vous voulez des mises à jour instantanées comme le chat, par exemple, vous pouvez jeter un oeil à orbited. Si vous pouvez enregistrer les données dans une boîte aux lettres d'un utilisateur et de ses abonnés, la manière la plus simple consiste à utiliser IMAP pour envoyer les mises à jour à la boîte de réception de l'utilisateur.
+0

bon point sur les conditions d'utilisation et la politique de confidentialité. Je me demande de plus en plus si cela sera utilisable (ce qui sera assez rapide, n'utilisera pas trop de ressources ou coûtera trop cher pour continuer à traiter ce truc toutes les quelques secondes, etc.). Pas intéressé par le chat en ce moment, plus juste le grattage de la page à intervalles réguliers (deuxième). Merci pour les conseils. –