CronJobs » History » Version 4
Simon, 10/02/2023 03:51 PM
1 | 1 | Simon | h1. CronJobs |
---|---|---|---|
2 | |||
3 | 2 | Simon | Depuis la version 1.8, Linea21 permet de planifier l’exécution de tâches de manière automatique (par exemple pour l'envoi d'emails, ou la réalisation d'une sauvegarde, ...) |
4 | 1 | Simon | |
5 | 2 | Simon | h2. Configurer l’exécution de tâches automatiques |
6 | |||
7 | La première étape est de configurer l'appel au script fourni par Linea21. Il se situe dans le répertoire /admin/. |
||
8 | |||
9 | Vous devez pour cela créer un nouveau cronjob. Référez-vous à la "documentation":http://doc.ubuntu-fr.org/cron. |
||
10 | |||
11 | Ajoutez l'une des deux instructions suivantes : |
||
12 | <pre> |
||
13 | <code> |
||
14 | 3 | Simon | * * * * * /usr/bin/php /var/www/linea21/admin/cron.php token=your_token_id |
15 | 2 | Simon | </code> |
16 | </pre> |
||
17 | |||
18 | ou (au cas où la première ne fonctionnerait pas) : |
||
19 | |||
20 | <pre> |
||
21 | <code> |
||
22 | 3 | Simon | * * * * * /usr/bin/curl http://www.mondomaine.tld/admin/cron.php?token=your_token_id |
23 | 2 | Simon | </code> |
24 | 1 | Simon | </pre> |
25 | |||
26 | 3 | Simon | *Le token correspond à la valeur de la constante SECRET_KEY disponible dans votre fichier de configuration (/config/config.ini).* |
27 | 2 | Simon | |
28 | 3 | Simon | L'instruction @* * * * * @ indique que le script est exécuté par cron chaque minute. Vous pouvez changer cette caractéristiques en modifiant la valeur. Par exemple, @*/10 * * * * @ exécutera le script chaque 10 minutes. Pour en savoir plus sur la syntaxe CRON, consultez la page Wikipedia : http://en.wikipedia.org/wiki/Cron. |
29 | 1 | Simon | |
30 | 3 | Simon | *Remarque :* Assurez-vous de la cohérence de la fréquence d'appel avec les différents cronjobs mise à disposition de l'application, sans quoi, ils ne seront pas exécutés. |
31 | 2 | Simon | |
32 | |||
33 | 3 | Simon | |
34 | 2 | Simon | h2. Cronjobs par défaut |
35 | |||
36 | Par défaut, l'application exécute 2 cronjobs : |
||
37 | |||
38 | * l'envoi de la newsletter (chaque nuit, à 00h00) |
||
39 | * le traitement de la queue d'emails (chaque 10 minutes) |
||
40 | |||
41 | <pre> |
||
42 | <code> |
||
43 | @daily ../newsletter/send.php |
||
44 | */10 * * * * ../mail/process_queue.php |
||
45 | </code> |
||
46 | </pre> |
||
47 | |||
48 | |||
49 | h2. Localisation des Cronjobs |
||
50 | 1 | Simon | |
51 | Le script _/admin/cron.php_ exécute les cronjobs situés dans le répertoire '/config/cron/'. |
||
52 | 2 | Simon | |
53 | Nous vous recommandons de ne pas modifier le fichier '/config/cron/1_default' qui comporte les tâches à exécuter par défaut et qui sera écrasé en cas de mise à jour de l'application. |
||
54 | |||
55 | 3 | Simon | Si vous souhaitez ajouter des cronjobs, il est recommandé de créer un (ou plusieurs) nouveau(x) fichier(s). |
56 | 2 | Simon | |
57 | 3 | Simon | L'application s'assure qu'un cronjob n'est exécuté qu'une seule fois seulement par appel. Vous pouvez donc modifier le comportement d'un cronjob fourni par défaut par l'application en le dupliquant dans un fichier dont le nom commence par '0' (l'exécution se fait par ordre alphabétique). |
58 | 2 | Simon | |
59 | Exemple d'un fichier nommé '/config/cron/0_user' : |
||
60 | 1 | Simon | |
61 | 2 | Simon | <pre> |
62 | <code> |
||
63 | */30 * * * * ../mail/process_queue.php |
||
64 | </code> |
||
65 | </pre> |
||
66 | 1 | Simon | |
67 | 3 | Simon | Dans cette configuration, l'application traitera la queue d'emails non plus chaque 10 minutes (comportement par défaut) mais chaque demi-heure comme défini par l'utilisateur. |
68 | 1 | Simon | |
69 | |||
70 | h2. Cronjobs et override |
||
71 | |||
72 | L'exécution des tâches planifiées supporte l'override. Cela signifie que vous pouvez créer votre propre script pour modifier le comportement d'une tâche existante. |
||
73 | |||
74 | 3 | Simon | Par exemple, l'instruction @*/10 * * * * ../mail/process_queue.php@ exécutera le script '_/templates/admin/montheme/override/mail/process_queue.php_' s'il est défini. |
75 | 1 | Simon | |
76 | 3 | Simon | h2. Créer de nouveaux cronjob |
77 | 1 | Simon | |
78 | 3 | Simon | |
79 | 4 | Simon | Dans le cadre de la création de nouveaux cronjobs, vous pouvez tester vos scripts de 2 façons : |
80 | 3 | Simon | |
81 | * directement depuis votre navigateur, en appelant la page http://www.mondomaine.tld/admin/cron.php?token=your_token_id |
||
82 | * ou bien en appelant le script depuis un terminal : |
||
83 | |||
84 | 1 | Simon | <pre> |
85 | 2 | Simon | <code> |
86 | 3 | Simon | /usr/bin/curl http://www.mondomaine.tld/admin/cron.php?token=your_token_id |
87 | 2 | Simon | </code> |
88 | </pre> |