2010-09-10 7 views
2

Je souhaite programmer une tâche périodique pour qu'elle s'exécute toutes les heures, mais uniquement du jeudi au lundi. Est-ce qu'un horaire comme celui-ci est possible? De the documentation, il semble que je peux planifier une tâche cron pour exécuter à un intervalle horaire ou jours spécifiques à un moment précis, mais je ne peux pas comprendre comment planifier une tâche cron pour exécuter à un intervalle horaire seulement certains jours.Programmer une tâche cron à exécuter toutes les heures certains jours sur App Engine

J'ai essayé horaires comme suit dans cron.yaml:

  • every 1 hours thu,fri,sat,sun,mon
  • every 1 hours of thu,fri,sat,sun,mon

La façon dont je lis la documentation, je pense que cela peut être impossible. J'espère que j'ai raté quelque chose ou qu'il y a une syntaxe non documentée pour ce que j'essaie d'accomplir.

+5

Une solution de contournement possible: faire le script vérifier la date – leoluk

Répondre

3

Comme vous l'avez remarqué dans la documentation de cronjobs, the source semble également indiquer que le format de planification d'intervalle ne vous permet pas de restreindre l'intervalle à certains jours de la semaine.

Bien que vous ne pouvez pas planifier votre tâche avec un seul cronjob, vous pouvez planifier avec plusieurs cronjobs:

every thu,fri,sat,sun,mon 00:00 
every thu,fri,sat,sun,mon 01:00 
... 
every thu,fri,sat,sun,mon 23:00 

Sinon, un commentaire de leoluk fait une bonne suggestion - il suffit d'utiliser un seul, simple intervalle schedule qui appelle votre script toutes les heures, mais que votre script se termine sans rien faire si le jour de la semaine est celui que vous souhaitez exclure (par exemple, mardi ou mercredi dans votre cas).

+0

Oui, il semble que la simple vérification du jour au début du script est probablement la bonne option. –

+0

Remarque: Il y a un commentaire dans la source qui indique que la syntaxe du calendrier peut être étendue pour permettre la spécification de plusieurs heures - alors vous pourriez réduire les 24 tâches en un seul travail. Alors peut-être que dans le futur vous pourriez remplacer le contrôle in-script par un simple cronjob (une ligne longue, mais meilleure que les 24 jobs qui seraient nécessaires pour atteindre votre objectif uniquement via cron). –

+0

Vous ne pouvez avoir qu'un maximum de 20 tâches cron – Ally