> ## Documentation Index
> Fetch the complete documentation index at: https://www.chapterjs.org/llms.txt
> Use this file to discover all available pages before exploring further.

# task()

> Tout ce que déclare un fichier de tâche : son horaire, son fuseau horaire, et ce que reçoit la fonction run

`task()` déclare une tâche, depuis n’importe quel fichier de `src/`, et le nom de son export est le nom de la tâche. Elle prend un objet, `TaskConfig`.

```ts src/tasks/cleanup.ts theme={"theme":{"light":"github-light","dark":"vesper"}}
import { task } from 'chapterjs';

export default task({
  every: '10m',
  async run({ guilds }) {
    console.log(`Surveillance de ${guilds.size} serveurs`);
  },
});
```

> [!NOTE]
>
> Comment écrire une tâche, et ce qui se passe quand un passage est long ou échoue, est dans le [guide](https://www.chapterjs.org/fr/tasks.md). Cette page liste ce qui existe.

## task()

```ts theme={"theme":{"light":"github-light","dark":"vesper"}}
task(config: TaskConfig): TaskDeclaration
```

Déclare une tâche : quelque chose que le bot fait tout seul. Exportez le résultat depuis n’importe quel fichier de `src/` : le nom de l’export est le nom de la tâche.

### TaskDeclaration

Ce que renvoie `task()` : une déclaration que le framework trouve dans les exports d’un fichier.

**config** `unknown`

Ce que le fichier a donné à `task()`, pas encore vérifié.

## TaskConfig

Ce qu’un fichier de tâche donne à `task()` : quand elle tourne, et ce qu’elle fait. C’est un `EveryTaskConfig` ou un `CronTaskConfig` : l’un de `every` et `cron`, jamais les deux.

**run** `(context: TaskContext) =\> unknown` *required*

Ce que fait la tâche.

**onStart** `boolean`

Tourner aussi une fois dès que le bot est connecté, sans attendre le premier horaire.

### EveryTaskConfig

Une tâche qui tourne régulièrement.

**every** `string` *required*

À quelle fréquence la tâche tourne : un nombre et une unité, `s`, `m`, `h` ou `d`, comme `'30s'`, `'10m'`, `'2h'`, `'1d'` ou `'1h30m'`. Une fois par seconde au plus. Compté à partir de la connexion du bot.

### CronTaskConfig

Une tâche qui tourne à des heures données.

**cron** `string` *required*

Quand la tâche tourne, sous forme d’expression cron : minute, heure, jour du mois, mois et jour de la semaine, comme `'0 9 * * 1-5'` (9 h en semaine). `*`, les listes (`1,15`), les plages (`1-5`), les pas (`*/15`) et les noms (`mon`, `jan`) fonctionnent.

**timezone** `string`

Le fuseau horaire que suit le cron, comme `'Europe/Paris'`. L’horloge de la machine par défaut.

Quand le jour du mois et le jour de la semaine sont tous les deux donnés, la tâche tourne les jours qui correspondent à l’un ou l’autre, comme le fait cron.

## TaskContext

Ce que reçoit `run` : le bot, tel que le donne l’événement `ready`, et l’heure.

**user** `User` *required*

Le bot lui-même.

**guilds** `ReadonlyMap\<Snowflake, Guild\>` *required*

Les serveurs où se trouve le bot.

**now** `Date` *required*

Le moment où ce passage était prévu.

Une tâche reçoit aussi `t`, dans la langue par défaut, quand le projet a une langue : voir [`TranslationContext`](https://www.chapterjs.org/fr/reference/messages#translationcontext).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.