Tâches planifiées

Découvrez notre offre de Cloud Public

L'hébergement mutualisé pour tou·te·s, imaginé par des développeur·euse·s, pour des développeur·euse·s.

Découvrir le Cloud Public

Les Web apps ou ser­vices ont par­fois besoin d’exé­cu­ter des tâches pério­di­que­ment, exé­cu­ter des com­mandes ou ap­pe­ler des URLs, sans aucune inter­ac­tion uti­li­sa­teur. Pour ce faire, vous devez créer une tâche pla­ni­fiée.

Notre pla­te­forme s’ap­puie sur Debian et sa crontab mais permet de les gérer directement dans notre interface d’administration - onglet Avancé > Tâches planifiées - et de faciliter l’utilisation.

Plusieurs types d’in­for­ma­tions sont à fournir :

  • la (les) commande(s) que vous sou­hai­tez exé­cu­ter, ou les URLs que vous sou­hai­tez requê­ter. Des adresses email peuvent aussi être renseignées pour recevoir les rapports d’erreurs1 (séparées par un espace).
  • l’environnement SSH
  • la pério­di­ci­té de votre tâche : vous pou­vez spé­ci­fiez une heure fixe, ou un inter­valle

Utiliser les tâches planifiées

  • Si la tâche est programmée à une certaine fréquence, mais que l’exécution de la tâche précédente n’est pas terminée, l’actuelle sera ignorée ;
  • Les tâches sont démarrées dans la minute indiquée. Autrement dit, une tâche devant débuter tous les jours à 6h30, démarrera entre 6:30:00 et 6:30:59 ;
  • Un log est automatiquement créé et disponible dans le répertoire $HOME/admin/logs/jobs/. Il vous donne le démarrage et l’arrêt de la tâche.
    • Un extrait de ces logs est présenté dans l’interface d’administration alwaysdata (Logs - 📄) ;
    • les adresses email renseignées pour recevoir les rapports d’erreurs ne remplacent pas ces logs ;
  • Les processus en cours sont accessible via le menu Avancé > Processus > Tâches planifiées ;
  • Pour les tâches de type Commande, les versions de langages utilisées par défaut sont celles renseignées dans le menu Environnement de l’interface d’administration. Il est possible de choisir une autre version en utilisant les Variables d’environnement.

Si votre script a besoin d’autoriser certaines IP, autorisez ces plages d’adresses IP.

Utilisateurs Cloud Public

  • La consommation doit rester raisonnable. Si la tâche planifiée est un traitement lourd, il convient de diminuer la fréquence.

Utilisateurs Cloud Privé

  • Même si c’est contre-indiqué, l’accès à la commande crontab -e est aussi disponible. Les deux systèmes sont distincts.

Problèmes fréquents

  • source venv/bin/activate && python est spécifique à Bash et ne peut fonctionner. À remplacer par venv/bin/python ;
  • les raccourcis en @ - exemples @hourly ou @reboot - ne sont pas acceptés (syntaxe non-normalisée).

Exemples

WordPress

Lancement, toutes les dix minutes, de l’outil WordPress pour exécuter leurs tâches planifiées :

Interface d’administration alwaysdata :

  • valeur : php $HOME/wordpress/htdocs/wp cron event run --due-now
  • fréquence : deuxième choix - Toutes les 10 minutes

Syntaxe crontab équivalente :

*/10 * * * * php $HOME/wordpress/htdocs/wp cron event run --due-now

tt-rss

Rafraîchissement d’un backend RSS avec TT-rss, tous les jours à 10:30 :

Interface d’administration alwaysdata :

  • valeur : php $HOME/tt-rss/update.php --feeds --quiet
  • fréquence : premier choix - Tous les jours à 10:30

Syntaxe crontab équivalente :

30 10 * * * php $HOME/tt-rss/update.php --feeds --quiet

  1. Un rapport est envoyé lorsque le code de retour est différent de 0. Si le tâche n’est pas exécutée, aucun mail n’est envoyé. ↩︎