task(), dans n’importe quel fichier de src/, et s’exporte. Elle dit quand tourner et quoi faire ; ChapterJS la lance une fois le bot connecté, et continue de la lancer tant que le bot est en ligne.
src/tasks/report.ts
Tout ce que déclare un fichier de tâche est dans la référence.
Régulièrement
every est une durée : un nombre et une unité, s, m, h ou d. La tâche tourne à cet intervalle, compté à partir du moment où le bot se connecte.
src/tasks/cleanup.ts
'30s', '10m', '2h', '1d' et '1h30m' fonctionnent tous ; une fois par seconde est le plus rapide.
À des heures données
cron est une expression cron standard : minute, heure, jour du mois, mois et jour de la semaine.
Sans
timezone, la tâche suit l’horloge de la machine sur laquelle tourne le bot. Avec un fuseau ('Europe/Paris', 'America/New_York'…), elle suit cette horloge, changements d’heure compris : une heure qui n’existe pas ce jour-là est sautée, une heure qui arrive deux fois ne tourne qu’une fois.
Un cron faux, ou qui n’arrive jamais ('0 0 31 2 *'), est une erreur au chargement du fichier, avec quoi écrire.
Tourner tout de suite
onStart: true lance aussi la tâche une fois dès que le bot est connecté, sans attendre son premier horaire :
src/tasks/status.ts
Ce que reçoit run
Quand un passage est long, ou échoue
Un passage encore en cours quand arrive l’horaire suivant n’est pas lancé deux fois : cet horaire est sauté, et votre terminal le dit.En développement, en production
Danschapterjs dev, enregistrer un fichier de tâche remplace ce qu’elle fait sans changer quand : une tâche qui tourne toutes les heures garde son prochain horaire à travers le rechargement. Changer every ou cron recompte la tâche à partir de l’enregistrement. Dans chapterjs start, un bot réparti sur plusieurs processus lance chaque tâche une fois, dans son premier processus.
Référence : task()
Chaque champ d’un fichier de tâche, et ce que reçoit run.
Envoyer des messages
Ce qu’une tâche peut publier, et où.