Question

J'utilise un travail différé pour gérer les tâches en arrière-plan.
Toutefois, certaines tâches doivent être exécutées à intervalles réguliers. Toutes les heures, tous les jours ou toutes les semaines, par exemple.

Pour l'instant, lorsque j'exécute la tâche, j'en crée une nouvelle à exécuter dans un jour / semaine / mois.

Cependant, je ne l'aime pas vraiment. Si, pour une raison quelconque, la tâche n'est pas complètement exécutée, nous ne créons pas la suivante et nous risquons de perdre l'exécution de la tâche.

Comment gérez-vous ce genre de choses (avec un travail différé) dans vos applications rails pour vous assurer que votre liste de tâches habituelles reste correcte?

Était-ce utile?

La solution

Si vous avez accès à Cron, je vous le recommande vivement à chaque fois

.

http://github.com/javan/whenever

Vous spécifiez ce que vous voulez exécuter et à quelle fréquence en ruby ??simple mort, et chaque fois que vous fournissez des tâches de ratissage pour convertir cela en une crontab et pour mettre à jour la crontab de votre système.

Si vous n'avez pas accès à cron fréquent (comme moi, puisque nous sommes sur Heroku), alors DJ est la voie à suivre.

Vous avez plusieurs options.

  1. Faites ce que vous faites. DJ réessayera chaque tâche un certain nombre de fois, de sorte que vous aurez une certaine clémence

  2. Placez le code qui crée le prochain travail DJ dans un bloc de vérification, afin de vous assurer qu'il est créé même après une exception ou un autre événement incorrect

  3. Créez un autre DJ qui s'exécute périodiquement, vérifie que les DJ appropriés existent et les crée s'ils ne le sont pas. Bien sûr, cela est aussi sujet aux erreurs que les autres options, puisque le moniteur et le DJ lui-même fonctionnent tous deux dans le même env, mais c’est quelque chose.

Autres conseils

Existe-t-il une raison particulière pour laquelle vous n’utiliseriez pas cron pour ce genre de choses? Ou peut-être quelque chose de plus rubyish comme rufus-scheduler , ce qui est assez facile à utiliser et très fiable.

Si vous n'avez pas besoin de faire la queue, ces outils sont une solution, je pense.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top