2010-05-28 3 views
0

J'utilise actuellement la gemme delayed_job et je me demandais comment exécuter une tâche de rake toutes les 5 minutes. Je veux lancer "rake ts: reindex RAILS_ENV = production" toutes les 5 minutes mais je ne sais pas par où commencer. Je n'ai vraiment pas beaucoup plus de choses à dire à ce sujet car je suis TRÈS inexpérimenté dans ce domaine du développement des rails.Tâche de rake répétée utilisant le travail différé

+0

toutes les réponses étaient très bas, mais j'ai fini par aller avec le bijou à chaque fois de garder tout ensemble dans mon attaché programme de rails. Merci tout le monde! – jim

Répondre

1

Utilisez la gemme Whenever pour programmer votre tâche de rake de réindexation ou toute autre tâche rake à exécuter toutes les 5 minutes.

Son rend très facile de créer des emplois Cron comme ces

+0

Que se passe-t-il si vous ne voulez pas utiliser rake pour éviter que les rails ne démarrent chaque fois que vous avez besoin d'un DJ? – tesserakt

1

Je ne suggérerais pas d'utiliser la réindexation du sphinx pensant toutes les 5 minutes. Si vous voulez vraiment mettre quelque chose comme ça dans votre/etc/crontab:

*/5 * * * * your_username cd /path/to/rails/root && rake ts:reindex RAILS_ENV=production 
1

Thinking Sphinx (en supposant que vous l'utilisez en raison des ts: réindexation mention) comporte des crochets internes à utiliser l'emploi retardé pour l'indexation. Avez-vous jeté un coup d'oeil à delayed delta indexing? Vous finirez probablement par utiliser le crontab pour exécuter le réindex delta périodique comme mentionné par Eimantas.

+0

Mais ajouter l'indexation delta coûte près de 50 dollars en heroku! – MaicolBen

+0

Eh bien, cette réponse a 5 ans, mais je n'utilise pas ou ne recommande pas Heroku pour des raisons comme ça. – x1a4

Questions connexes