Cron¶
Si vous configurez cron correctement comme décrit dans Cron des hooks spéciaux seront déclenchés afin que vous puissiez enregistrer des gestionnaires pour ces hooks depuis votre propre code.
L’exemple ci-dessous enregistre une fonction pour le cron quotidien.
function my_plugin_init() {
elgg_register_plugin_hook_handler('cron', 'daily', 'my_plugin_cron_handler');
}
Si le timing est important dans votre hook cron, notez que les fonctions sont exécutées dans l’ordre d’enregistrement. Cela pourrait signifier que votre fonction peut commencer (beaucoup) plus tard que vous l’avez peut-être prévu. Toutefois, les paramètres fournis dans le hook contiennent l’heure de départ d’origine du cron, de sorte que vous pouvez toujours utiliser ces informations.
function my_plugin_cron_handler(\Elgg\Hook $hook) {
$start_time = $hook->getParam('time');
}
Intervalles personnalisés¶
Les développeurs de plugins peuvent configurer leurs propres intervalles personnalisés.
Avertissement
Il n’est PAS recommandé de faire cela, car les utilisateurs de votre plugin pourraient aussi avoir besoin de configurer votre intervalle personnalisé. Essayez de travailler avec les intervalles par défaut. Si vous avez seulement à effectuer une certaine tâche à 16:30, vous pouvez utiliser l’intervalle d’une demi-heure halfhour
et vérifier que date('G', $start_time) == 16
et date('i', $start_time) == 30
elgg_register_plugin_hook_hander('cron:intervals', 'system', 'my_custom_cron_interval');
function my_custom_cron_interval(\Elgg\Hook $hook) {
$cron_intervals = $hook->getValue();
// add custom interval
$cron_intervals['my_custom_interval'] = '30 16 * * *'; // every day at 16:30 hours
return $cron_intervals;
}
Voir aussi
Événements et Hooks plugin présente plus d’informations sur les hooks
Pour plus d’informations sur la définition des intervalles de cron pris en charge, voir la documentation PHP Scheduler