2010-07-20 5 views
2

Si j'ai besoin de créer des tâches récurrentes dans des travaux retardés, qu'est-ce qu'une solution propre? J'ai une tâche d'importation que je veux exécuter toutes les 5 minutes, mais je ne veux pas lancer de rails/rake afin de lui dire de créer un travail retardé qui peut être ramassé. Si Rails est déjà en cours d'exécution sur un système, peut-être que je peux simplement créer une requête HTTP qui va faire exploser l'application rails d'un DJ? Je pourrais mettre cette tâche cron dans un script ruby ​​qui s'exécute toutes les 5 minutes, en faisant des demandes à un serveur, mais sans tirer des rails. Qu'est-ce que tu penses?Tâches récurrentes dans les tâches Delajed sans lancer les Rails?

Répondre

1

Cette fourche de delayed_job a récidive construit en droit (et il peut y avoir d'autres fourches qui font la même):

http://github.com/andrewroth/delayed_job

+0

Ceci est exactement ce dont j'ai besoin. Je peux utiliser Whenever pour charger les DJs au démarrage et ensuite ils fonctionneront quand j'en aurai besoin. – tesserakt

0

L'approche cron semble toujours assez propre. Il suffit de lancer une invocation rake, pas un serveur Rails complet. Rake n'a pas besoin de Rails pour fonctionner.

Toutefois, si vous n'aimez vraiment pas cette approche, vous pouvez prendre des dispositions pour les emplois récurrents à se re-file d'attente quand ils sont en cours de traitement la fixation d'un temps run_at à 5 minutes (ou autre) à l'avenir. Évidemment, vous aurez besoin pour amorcer la file d'attente la première fois et assurez-vous que le serveur reste delayed_job en cours d'exécution

0

a propos ... J'ai le même désir, Je prévois d'avoir un cron pour tirer une boucle demande à un itinéraire spécifique sur mon site toutes les 5 minutes, il court un l'action avec le résultat, et je vais être à peu près sûr qu'il n'a couru qu'une seule fois. Mes objectifs incluent: Attribuer des badges et compiler certaines moyennes

Questions connexes