# 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/@namespace
du fichier de définition de la route)task/route/@ref
: nom de la route (route/@name
du fichier de définition de la route)task/route/@method
: methode HTTP de la route (route/method
du fichier de définition de la route)task/route/argument/@name
: nom de variable du pattern (route/@pattern
du fichier de définition de la route)task/route/argument/
: valeur de la variable du pattern (route/@pattern
du fichier de définition de la route)task/route/query-field/@name
: nom d'un argument pour la requête (route/@pattern
du fichier de définition de la route)task/route/query-field/
: valeur d'un argument pour la requête (route/@pattern
du 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>