Question

Cela peut sembler une FAQ sur stackoverflow, mais mes exigences sont un peu différents. Bien que je l'ai déjà utilisé BackgroundRB et DJ pour exécuter des processus d'arrière-plan dans le rubis, mon exigence ce moment est d'exécuter des analyses de lourds et des calculs mathématiques sur un vaste ensemble de données, et je dois le faire que sur les 15 premiers jours du mois . Aller par cela, je suis tenté d'utiliser Cron et exécuter un script Ruby pour atteindre cet objectif.

Ce que je voudrais savoir / comprendre est: 1 - Est-ce en utilisant Cron une bonne idée (parce que je ne suis pas un administrateur système, et donc pendant que j'ai idée de base de Cron, je ne suis pas trop confiant de le faire parfaitement) 2 - Peut-on modifier en quelque sorte DJ à courir que sur les 15 premiers jours du mois (avec / sans utiliser Cron), et puis juste arrêter et sortir une fois tous les travaux dans la file d'attente pour la journée sont plus (ne veulent pas ping la DB à chaque fois pour un nouvel emploi ... quels que soient les emplois seront dans la file d'attente lorsque commence DJ, ce sera tout).

Je ne sais pas si j'ai posé la question de la bonne manière, mais toute aide dans ce sens sera beaucoup apprécié.

Merci

Était-ce utile?

La solution

Avec le temps « minute heure jour mois dayofweek » de Cron spécification, 03h33 1er au quinzième jour de chaque mois serait « 33 * * 1 au 15 mars »

Autres conseils

L'utilisation Cron serait vraiment facile, et vous avez beaucoup d'exemple et il est fiable.

Quoi qu'il en soit voici quelques moulages d'écran de Railcasts vous pouvez consulter:

Starling et Workling

personnalisée Daemon

Oui, pourquoi pas? Allez avec Cron. Il est vraiment bien testé dans la nature, bien adaptée à l'exécution des tâches périodiques et incroyablement facile à utiliser. Vous ne même pas besoin d'apprendre la syntaxe crontab (bien qu'il est très facile) - déposez simplement votre script dans /etc/cron.daily (cette option pourrait être disponible que sur certains distributions Linux).

Je ne suis pas sûr de la « première seulement fiteen jours du mois » chose, mais vous pouvez facilement gérer cette condition dans votre tâche, non?

EDIT:

Découvrez la réponse par voir comment exécuter la tâche seulement à un certain nombre de jours.

J'ai eu aussi cette exigence. J'ai suivi la recette « Tâches automatique périodique » 75 dans le Rails avancés Recettes réserver . La recette est écrite par David Bock. Il a quelques extraits de code et des lignes directrices sur la façon dont cela peut être réalisé en utilisant cron et Capistrano. Cependant, il y a un problème non résolu (mais mentionné) en ce qui concerne les utilisateurs / autorisations qui doit être sur la machine cible. Il est vraiment difficile de ne pas faire droit, il vous suffit de se rappeler de le faire et le mettre dans les scripts de déploiement vous Capistrano.

Il semble que David Bock a continué à travailler sur ce sujet et a creaated un petit bijou pour une utilisation avec Cron: Voir son blog et suivez crondonkulous sur github . Crondonkulous peut très bien prendre soin de cette chose utilisateur / permission et plus, je ne l'ai pas essayé.

Jarl

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