# Exécution des Tasks (Task Runs)

L'exécution des Tasks est gérée par l'objet **Task Run.** Un **Task Run** permet de **définir** les paramètres d'exécution:

* d'une **Task**
* sur un **Host**
* avec une série **Task Parameters**

{% hint style="info" %}
Les **Task Runs** ne permettent pas de suivre l'exécution des Tasks, mais uniquement de définir les paramètres d'exécution.

Le suivi de l'exécution est disponible au niveau des **IMQ Messages** (voir le paragraphe[#execution-asynchrone-des-tasks-launch-as-job](#execution-asynchrone-des-tasks-launch-as-job "mention") ci-après)
{% endhint %}

## Liste des Task Runs

La liste des **Task Runs** est accessible via le menu **Muppy / Tasks / Task Runs**

![Vue liste des Task Run](/files/zTOVnXdIBLdDGrkPj0dp)

## **Création / Edition d'un Task Run**

Le formulaire **Task Run** permet de définir et d'accéder aux éléments suivants:

![Vue formulaire des Task Runs](/files/q68kYd8D3ri30qQTcJMX)

1. La **Task** a exécuter
2. Le **Host** sur lequel la Task sera exécutée
3. Le nom de la Task ; il est généré par Muppy à partir de la Task et du Host mais il peut être modifié.
4. <mark style="background-color:orange;">Une fois que la Task et le Host sont définis, vous devez cliquer sur le bouton</mark> <mark style="background-color:orange;"></mark><mark style="background-color:orange;">**Refresh**</mark> <mark style="background-color:orange;">**Parameters**</mark> <mark style="background-color:orange;"></mark><mark style="background-color:orange;">pour que Muppy actualise la liste des</mark> <mark style="background-color:orange;"></mark><mark style="background-color:orange;">**Task Parameters**</mark> <mark style="background-color:orange;"></mark><mark style="background-color:orange;">(#5 sur l'image suivante)</mark>
5. Les paramètres d'exécution de la Task.
6. Deux boutons permettant de lancer le **Task Run** au choix:
   * en mode synchrone **(Launch)**
   * en asynchrone **(Launch as Job)** via un job dont l'exécution est tracée par un **IMQ Message** dans un queue.
7. &#x20;Valeur renvoyée par Launch
8. ID et lien vers le **IMQ Message** correspondant au job d'exécution de la Task lorsque le **Task Run** est lancé en mode asynchrone (avec le bouton <img src="/files/9bZA00dfGC9Lzy8dV5mT" alt="" data-size="line"> )
9. Bouton permettant de créer une tâche planifiée (un **CRON**) à partir du **Task Run**
10. Permet d'accéder au **CRON** du **Task Run** lorsqu'il existe&#x20;

Veuillez vous référer à l'aide contextuelle pour les autres champs.

### Saisie des Tasks Parameters

Cliquez sur la ligne d'un paramètre pour ouvrir le formulaire de saisie des paramètres.

![](/files/sR8bXi6teIpKJ7Q266sT)

La partie supérieure du formulaire (#1 sur l'image ci-dessus) affiche le nom, le type, la description et la valeur par défaut du paramètre.

La valeur du paramètre est saisie dans la dernière ligne (#2).

#### Paramètre de type OdooModelType

Ce type de paramètre permet à l'utilisateur de passer à la Task une référence à un objet Muppy. Par exemple un Cluster PostgreSQL, un Host ou un Object S3.

La saisie des paramètres de type **OdooModelType** implique de saisir 2 valeurs:

* Le type d'objet Muppy ; PostreSQL Database Cluster dans l'exemple ci-dessus.
* L'objet Muppy lui-même ; le cluster v13-main-5432\@... dans l'exemple.

{% hint style="warning" %}
Une fois que la saisie des paramètres est terminée, pensez à cliquer sur **Save au niveau des paramètres et du Task Run.**
{% endhint %}

## Exécution asynchrone des Tasks (Launch as Job)

En règle générale, Muppy exécute en asynchrone via un système de Jobs - toutes les Tasks dont la durée d'exécution prévue dépasse quelques secondes.

Veuillez vous référez à la page suivante pour plus de détails:

{% content-ref url="/pages/OtN5ieqhjsVzPWYvqdMx" %}
[Exécution asynchrone des Tasks (Launch as Job)](/guides/muppy-core/tasks-et-fact-collectors/execution-des-tasks-task-runs/execution-asynchrone-des-tasks-launch-as-job.md)
{% endcontent-ref %}

## Exécution périodique de Task Runs (CRON)

Muppy peut facilement être configuré pour exécuter périodiquement un Task Run. Cette fonctionnalité est utile - par exemple - pour mettre en oeuvre des Backups (Voir la page [Backups Planifiés](/guides/postgresql/postgresql-base/backups-planifies.md)).

Pour créer un CRON:

* <mark style="background-color:orange;">Ouvrez la vue formulaire d'un Task Run correctement configuré</mark>
* Cliquez sur le bouton **Create CRON (#9)** situé en haut à droite du formulaire **Task Run. Muppy** créé un **CRON** ou **Tâche Planifiée** et le référence dans le champ **CRON (#10)**
  * Les numéros font référence à l'image **Vue formulaire des Task Runs** ci-dessus
* Ouvrez le **CRON** en cliquant sur la valeur du champ CRON (#10), le formulaire suivant apparait.

![Formulaire des CRON  / Tâches Planifiées](/files/l4vPnHHeIgghi674Q5JP)

Ajustez:

1. **Execute Every:** permet de définir la période de récurrence.
2. **Next Execution Date**: sert à définir la date et l'heure de la prochaine exécution. Les exécutions suivantes seront planifiées en ajoutant **"Execute Every"** à Next Execution Date. La partie horaire de Next Execution est utilisée pour définir l'heure d'exécution.

{% hint style="warning" %}
Si vous entrez une **Next Execution Date** dans le passé, Muppy va exécuter la Task immédiatement une fois au moment du Save.
{% endhint %}

Puis cochez **Active** et cliquez sur **Save** pour activer le CRON.

{% hint style="danger" %}
Pour désactiver un CRON, n'utilisez pas Active, mais utilisez plutôt le bouton **Remove CRON** dans le **Task Run.**
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.muppy.io/guides/muppy-core/tasks-et-fact-collectors/execution-des-tasks-task-runs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
