Cron

Si vous configurez correctement cron comme décrit dans Cron, des événements spéciaux seront déclenchés afin que vous puissiez vous inscrire à ces événements à partir de votre propre code.

L’exemple ci-dessous enregistre une fonction pour le cron quotidien.

function my_plugin_init() {
    elgg_register_event_handler('cron', 'daily', 'my_plugin_cron_handler');
}

Si le timing est important dans votre événement cron, sachez que les fonctions sont exécutées par ordre d’enregistrement. Cela pourrait signifier que votre fonction pourrait démarrer (beaucoup) plus tard que prévu. Cependant, les paramètres fournis dans l’événement contiennent l’heure de début d’origine du cron, vous pouvez donc toujours utiliser cette information.

function my_plugin_cron_handler(\Elgg\Event $event) {
    $start_time = $event->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_event_handler('cron:intervals', 'system', 'my_custom_cron_interval');

function my_custom_cron_interval(\Elgg\Event $event) {
        $cron_intervals = $event->getValue();

        // add custom interval
        $cron_intervals['my_custom_interval'] = '30 16 * * *'; // every day at 16:30 hours

        return $cron_intervals;
}

Voir aussi