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

# Démarrage rapide des tâches planifiées

> Créez dans Game Manager une tâche planifiée PlayFab récurrente qui appelle CloudScript au moyen d'une expression cron pour ajuster les données de titre à une fréquence fixe.

Ce démarrage rapide vous montre comment créer une tâche qui s'exécute selon un horaire. De nombreuses routines d'exploitation d'un jeu peuvent être automatisées à l'aide d'une tâche planifiée, par exemple :

* Modifier les prix d'une boutique selon le moment de la journée.
* Mettre à jour les données de titre pour refléter les changements liés à un événement en cours.
* Injecter quotidiennement des monnaies virtuelles dans l'économie du jeu, etc.

Dans l'exemple utilisé dans ce démarrage rapide, nous vous montrerons comment modifier une variable de jeu appelée **rareDropRate** dans les données de titre à 12 h UTC, et uniquement les jours de fin de semaine.

## Étape 1 - Préparer le CloudScript

Dans **Game Manager** :

* Sélectionnez **Automation** dans le menu de gauche.
* Dans l'onglet **CloudScript Revisions**, ajoutez une nouvelle fonction CloudScript appelée `adjustRareDropRate` avec un simple appel à l'API `SetTitleData`, comme le montrent l'extrait de code et l'image ci-dessous.

<Note>
  Pour les plus attentifs, ne vous inquiétez pas : il y a un bogue intentionnel. Assurez-vous de déployer la nouvelle révision afin qu'elle soit active dans votre jeu.
</Note>

Vous pouvez en apprendre davantage sur l'utilisation de CloudScript dans notre [démarrage rapide de CloudScript](/fr-CA/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart), ainsi que dans la documentation de la méthode [ExecuteCloudScript](xref:titleid.playfabapi.com.client.server-sidecloudscript.executecloudscript).

```javascript theme={null}
handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    serverAPI.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}
```

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-cloudscript-deploy-new-revision.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=db6bc4f364ba1f9b4f28094921c2383c" alt="Game Manager - CloudScript - Déployer une nouvelle révision" width="1280" height="700" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-cloudscript-deploy-new-revision.png" />

## Étape 2 - Créer une tâche planifiée

Sélectionnez maintenant **Servers** dans le menu de gauche.

* Allez à l'onglet **Scheduled Tasks**.
* Sélectionnez **New Scheduled Task** dans le coin supérieur droit de votre écran.
* La vue **Create Task** s'affiche.
* Dans le champ **Type of task**, choisissez **Run a CloudScript function**.
* En dessous, vous pourrez choisir une fonction dans la révision de CloudScript actuellement déployée et préciser les arguments à transmettre.
* Choisissez le gestionnaire **adjustRareDropRate** que vous avez écrit à l'étape précédente.

Pour définir l'horaire de cette tâche :

* Sélectionnez **On a schedule (UTC)** sous l'en-tête **SCHEDULE**.
* Un générateur d'horaire simple vous permet de choisir quand la **tâche** doit s'exécuter (toutes les heures, tous les jours, toutes les semaines, etc.).
* Pour cet exemple, nous voulons un horaire avancé, dans lequel nous pouvons préciser les jours de la semaine où exécuter la tâche.
* Sélectionnez donc **CRON EXPRESSION**.

L'expression cron, hautement personnalisable, vous permet de créer un horaire très complexe; il est toutefois important de noter que nous autorisons actuellement *uniquement* les horaires dont les occurrences tombent sur des multiples de 5 minutes dans l'heure.

Par exemple, vous pouvez définir une tâche pour qu'elle s'exécute à la 5e, 10e, 25e ou 50e minute de l'heure, mais vous ne pouvez *pas* définir une tâche pour qu'elle s'exécute à la 3e, 11e ou 46e minute de l'heure.

Si vous souhaitez en apprendre davantage sur les expressions cron, [crontab.guru](https://crontab.guru/) offre des renseignements détaillés et un générateur d'expressions interactif.

Dans ce cas, nous voulons que la tâche s'exécute à 12 h UTC les samedis et dimanches, ce qui donnerait **00 12 \* \* 0,6**  (zéro minute après midi, tous les dimanches et samedis).

Enfin, assurez-vous d'enregistrer la nouvelle tâche avant de passer à l'étape suivante.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-new-scheduled-task.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=e8ee3518088be1728ac184868d985b53" alt="Game Manager - Tasks - Nouvelle tâche planifiée" width="1046" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-new-scheduled-task.png" />

## Étape 3 - Tester la tâche

Dans la vue **Tasks** (**Servers** -> **Tasks**), nous pouvons voir que la prochaine exécution de la tâche nouvellement créée aura lieu le *samedi* suivant, comme prévu.

Donc, si nous sommes actuellement *mardi*, la prochaine exécution planifiée aurait lieu *dans 4 jours*. Pour tester la tâche *maintenant*, sélectionnez la tâche **Adjust rare drop rate** et choisissez **RUN TASKS**.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-run-tasks.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=ca99c453fb27cae7ee06c514a64bac32" alt="Game Manager - Tasks - Exécuter les tâches" width="1920" height="600" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-run-tasks.png" />

## Étape 4 - Vérifier les résultats de l'exécution de test

Malheureusement, l'exécution de la tâche a échoué. Sélectionnez l'instance de la tâche pour voir ce qui n'a pas fonctionné.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-failed.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=140bddb5715b4815d89ad9f26bcbaa75" alt="Game Manager - Tasks - Exécutions récentes de tâches - Échec" width="1870" height="253" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-failed.png" />

La vue **Task Instance Details** fournit des renseignements de diagnostic sur la raison de l'échec de la tâche.

Dans ce cas, elle indique que l'appel à **serverAPI.SetTitleData** est incorrect. Il devrait *plutôt* s'agir de **server.SetTitleData** (pour une explication, consultez la section **Intermediate: Calling the Server APIs** du tutoriel [Écriture de CloudScript personnalisé](/fr-CA/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript#intermediate-calling-the-server-apis)).

La vue **Task Instance Details** contient également d'autres renseignements importants, comme les heures de début et de fin, la fonction appelée, les arguments transmis, le résultat complet de l'exécution de CloudScript, et plus encore.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-task-instance-details.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=86e963959cb4c8aed29d5523031d0346" alt="Game Manager - Tasks - Détails de l'instance de tâche" width="1120" height="1869" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-task-instance-details.png" />

## Étape 5 - Tester de nouveau (avec succès)

Corrigez l'erreur que nous avons trouvée à l'étape 4. L'extrait de code correct est présenté ci-dessous.

```javascript theme={null}
handlers.adjustRareDropRate = function(args) {
    // Tutorial demo CloudScript
    server.SetTitleData({
        "Key": "rareDropRate",
        "Value": args.dropRate
    });
}
```

Maintenant, en répétant l'étape 3, votre exécution de test finale réussit.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-successful.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=e67ce866e0b36227b39e3c829eea5000" alt="Game Manager - Tasks - Exécutions récentes de tâches - Réussite" width="1686" height="446" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-tasks-recent-task-executions-successful.png" />

Pour confirmer la réussite :

* Sélectionnez **Content** dans le menu de gauche.
* Allez à l'onglet **Title Data**.
* Vérifiez que l'entrée **Title Data** a bien été définie.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-content-title-data.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=229b4658045991da01edcad22c512fef" alt="Game Manager - Content - Données de titre" width="1280" height="800" data-path="images/playfab/data-analytics/acting-data/scheduled-tasks/tutorials/game-manager-content-title-data.png" />


## Related topics

- [Tâches planifiées](/fr-CA/services/playfab/data-analytics/acting-data/scheduled-tasks/index.md)
- [Documentation sur les données et l'analytique PlayFab](/fr-CA/services/playfab/data-analytics/index.md)
- [Démarrage rapide des données des joueurs](/fr-CA/services/playfab/player-progression/player-data/quickstart.md)
- [Démarrage rapide des entités](/fr-CA/services/playfab/live-service-management/game-configuration/entities/quickstart.md)
- [Démarrage rapide des échanges](/fr-CA/services/playfab/economy-monetization/economy/trading/trading-quickstart.md)
