2011-04-01 1 views
4

J'essaie de déterminer la meilleure façon de faire quelque chose pour un projet que j'ai où je compte sur un API/service externe qui prend ~ 2,5-4 secondes pour une réponse.Polling, Web Sockets, ou comète sur une application rails

Actuellement j'utilise javascript pour charger les API/données après le chargement du DOM puis jquery met à jour un partiel sur la page. Assez comme le chargeur que j'ai, il verrouille encore le processus de serveur, donc je voudrais le déplacer dans un travailleur Heroku en utilisant delayed_job ou autre chose? Et l'information de l'API est spécifique à l'utilisateur et pas quelque chose qui pourrait être dans un travail cron. Les données que je tire seulement doivent être mises à jour toutes les quelques heures et sont enregistrées localement dans la base de données, donc j'imagine qu'une socket Web tout dehors telle que celle fournie par Pusherapp.com serait exagérée?

Je penche pour l'interrogation en utilisant delayed_job et j'attends une mise à jour de statut pour déterminer si elle est complète. Quelqu'un at-il fait cela avec delayed_job? Des conseils ou des mises en garde?

Merci

+0

J'ai utilisé beaucoup de technologies push et pour un usage léger, http://www.pubnub.com/ est le plus facile à implémenter. Cela dépend de ce que sont les tâches. – Gazler

Répondre

0

Oui vous pouvez certainement faire quelque chose comme ça avec delayed_job ... mais, finalement, il semble que vous besoin de quelque chose comme Cron pour la planification, à droite? Alternativement, ne pouvez-vous pas utiliser cron sur heroku pour exécuter une tâche de rake toutes les deux heures?

+0

Non, désolé je suppose que je n'étais pas assez précis. C'est l'emplacement/utilisateur spécifique pour les informations tirées de l'API. Je ne pouvais pas simplement le charger par lots, cela dépend de l'utilisateur. – holden

+1

Puis delayed_job trouve des sons. Lorsqu'un utilisateur charge la page, mettez en file d'attente un travail. Puis interrogez pour voir quand c'est fait. –