2009-06-16 6 views
1

Je voudrais lancer un fil qui se réveille toutes les quelques secondes pour faire un peu de traitement dans une application web Ruby-on-Rails. Dans .NET, l'emplacement logique aurait été de créer un thread dans le fichier global.asax et de le démarrer en Application_Start.Ruby Equivalent de ASP.NETs Application_Start?

Existe-t-il un paradigme similaire pour faire de telles choses dans RoR? Serait-ce fait dans le ApplicationController? En aparté: est-ce que j'entre les mauvaises chaînes de recherche ou est-ce que les moteurs de recherche sont vraiment mal à trouver des informations pour construire des applications RoR?

Répondre

3

Rails n'a pas vraiment d'équivalent. Le Whenever rubygem est une belle abstraction de Cron qui vous permet d'utiliser la syntaxe comme dans l'exemple ci-dessous dans votre application Rails:

every 30.seconds do 
    # Do something interesting... 
end 

Certaines ressources peuvent vous être utiles:

0

Les moteurs de recherche ne sont pas seulement mauvais, mais presque le seul endroit où vous trouverez des informations sur RoR. :(

Je pense que le paradigme que vous cherchez est un travail cron, bien que cela suppose que vous utilisez Linux. Ce que j'ai vu le plus souvent est essentiellement une "tâche planifiée" qui descend une page chaque X les y et le traitement se fait dans cette demande. Vous pouvez même le faire à distance en ayant votre point de tâche planifiée au cron de la boîte à distance « point de vie ».

Vous pourrait mettre le code dans ApplicationController et faites-le vérifier pour voir si le travail a été accompli au cours des X dernières années, mais le problème est que vous pourriez être affamé pour des demandes pour plus longtemps que l'intervalle prévu

Bonne la chance!

+0

J'ai pensé à utiliser un travail cron, mais je voudrais garder tout autonome dans la webapp si possible. – jerhinesmith

+0

"Les moteurs de recherche ne sont pas seulement mauvais, mais presque le seul endroit où vous trouverez des informations pour RoR" - Il existe de nombreux livres sur RoR, une API complète et un nouveau système wiki. Ce n'est pas aussi mauvais qu'il y a 2 ans – marcgg

+0

@marcgg Maybe. Oui, si vous savez ce que vous faites et êtes relativement expérimenté. Mais si vous êtes nouveau sur les rails, beaucoup de ces livres sont obsolètes, et se mettre à jour avec "la voie des rails" est difficile à apprendre de façon cohérente. Ou du moins, ça a été mon expérience. –

0

Il n'y a pas une réponse rapide à cette question, car elle dépend fortement de vos besoins spécifiques. Certes, cependant, il n'y a pas d'équivalent direct au concept que vous décrivez dans ASP.NET Cependant, vous voudrez jeter un oeil à Background Processing on Rails comme un excellent point de départ.

0

Il ya quelques années, j'ai essayé daemon_generator mais pour une raison quelconque maintenant oublié, je n'ai jamais fini par l'utiliser.