# Les tâches programmées
# Introduction
Les tâches programmées permettent de lancer, à intervalle régulier, des actions. Une action est le résultat du déclenchement d'une route.
La description d'une tâche se fait dans un fichier XML à l'aide du schéma
https://platform.anakeen.com/4/schemas/task/1.0.
# Arguments de la tâche
Les balises à renseigner sont :
@name: le nom logique de la tâche@label: le titre de la tâchetask/user/@login: indique le login du compte avec lequel la tâche est exécutée.task/crontab: indique la périodicité au format crontab.task/route: indique la référence de la route a exécutertask/route/@ns: namespace de la route (routes/@namespacedu fichier de définition de la route)task/route/@ref: nom de la route (route/@namedu fichier de définition de la route)task/route/@method: methode HTTP de la route (route/methoddu fichier de définition de la route)task/route/argument/@name: nom de variable du pattern (route/@patterndu fichier de définition de la route)task/route/argument/: valeur de la variable du pattern (route/@patterndu fichier de définition de la route)task/route/query-field/@name: nom d'un argument pour la requête (route/@patterndu fichier de définition de la route)task/route/query-field/: valeur d'un argument pour la requête (route/@patterndu fichier de définition de la route)
task/description: description textuelle de la tâche qui est effectuéetask/status: (active/disabled) : indique si la tâche doit être exécutée (active) ou ignorée (disabled).
La tâche est exécutée à la date calculée à partir la périodicité donné dans l'argument task/crontab.
WARNING
La périodicité minimum est de 5 minutes
# Importation de la tâche
La tâche est enregistrée en exécutant la commande d'importation sur le serveur
./ank.php --script=importConfiguration --file=vendor/My/tasks/myFirstTasks.xml
# Exemple
Soit une route déclarée dans le fichier de configuration des routes vendor/My/config/myRoutes.xml:
<?xml version="1.0"?>
<sde:config xmlns:sde="https://platform.anakeen.com/4/schemas/sde/1.0">
<sde:routes namespace="Test">
<sde:route name="TheRoute">
<sde:callable>\My\Routes\Tests\TestConfig</sde:callable>
<sde:method>POST</sde:method>
<sde:pattern>/tests/routes/{mykey}</sde:pattern>
<sde:description>Route test config</sde:description>
<sde:requiredAccess/>
</sde:route>
</sde:routes>
</sde:config>
Dans cet exemple, la référence de la route Test::TheRoute ainsi que son paramètre mykey sont indiqués.
Fichier : vendor/My/tasks/myFirstTasks.xml:
<?xml version="1.0" encoding="UTF-8"?>
<smart:config xmlns:smart="https://platform.anakeen.com/4/schemas/smart/1.0"
xmlns:task="https://platform.anakeen.com/4/schemas/task/1.0">
<task:task name="TST_TASK0001" label="Ma lourde tâche">
<task:user login="admin"/>
<task:description>Quelque chose à faire...</task:description>
<task:route ns="Test" ref="TheRoute" method="POST">
<task:argument name="mykey">Hello</task:argument>
<task:query-field name="y">World</task:query-field>
</task:route>
<task:crontab>4,30 6 * * 1-5</task:crontab>
<task:status>active</task:status>
</task:task>
</smart:config>