Cron¶
Qu’est-ce que ça fait ?¶
`Cron`__ est un programme disponible sur les systèmes d’exploitation basés sur Unix qui permet aux utilisateurs d’exécuter des commandes et des scripts à des intervales particuliers ou à des heures spécifiques.
Le gestionnaire de cron d’Elgg permet aux administrateurs et aux développeurs de plugins de mettre en place des tâches qui ont besoin d’être exécutées à des intervalles définis.
Les exemples les plus courants de tâches cron dans Elgg incluent :
- l’envoi des notifications en file d’attente
- la rotation des journaux système dans la base de données
- le nettoyage des déchets dans la base de données (compactage de la base de données par la suppression des entrées qui ne sont plus requises)
Les plugins peuvent ajouter des tâches en enregistrant un gestionnaire de hook plugin pour l’un des intervalles de cron suivants :
minute
- Exécuté toutes les minutesfiveminute
- Exécuté toutes les 5 minutesfifteenmin
- Exécuté toutes les 15 minuteshalfhour
- Exécuté toutes les 30 minuteshourly
- Exécuté toutes les heuresdaily
- Exécuté tous les joursweekly
- Exécuté toutes les semainesmonthly
- Exécuté tous les moisyearly
- Exécuté tous les ans
elgg_register_plugin_hook_handler('cron', 'hourly', function() {
$events = my_plugin_get_upcoming_events();
foreach ($events as $event) {
$attendees = $event->getAttendees();
// notify
}
});
Comment ça marche ?¶
crontab
doit être configuré de telle manière qu’il active le gestionnaire de cron d’Elgg chaque minute, ou à un intervalle spécifique. Une fois que l’entrée du cron active le travail du cron, Elgg exécute chaque gestionnaire de hook attaché à cet intervalle.
Si vous avez un accès SSH à vos serveurs Linux, tapez crontab -e
et ajoutez votre configuration crontab.
* * * * * path/to/phpbin path/to/elgg/elgg-cli cron -q
La commande suivante va s’exécuter chaque minute et activer toutes les tâches du cron attendues.
Facultativement, vous pouvez activer les gestionnaire pour un intervalle spécifique :
0 * * * * path/to/phpbin path/to/elgg/elgg-cli cron -i hourly -q
Vous pouvez trouver plus d’informations sur cron sur :