Ich versuche, ein Cron so einzurichten, dass es jede Stunde ausgeführt wird. Es funktioniert gut auf meiner lokalen Vagabundbox, aber es scheint nicht richtig auf aws (elastische Bohnenstange) zu planen. Hier ist der Code:
register_activation_hook(__FILE__, 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');
function my_activation() {
wp_schedule_event(time(), 'hourly', 'my_hourly_event');
}
function do_this_hourly() {
another_function();
}
register_deactivation_hook(__FILE__, 'my_deactivation');
function my_deactivation() {
wp_clear_scheduled_hook('my_hourly_event');
}
stimmt etwas nicht oder spielt etwas anderes?
Ich habe den w3-Gesamtcache sowohl lokal als auch auf aws installiert, daher glaube ich nicht, dass dies daran schuld wäre, wie ich gehört habe.
Vielen Dank.
Antworten:
Grundsätzlich sollten Sie nach dem Plugin-Aktivierungs-Hook nichts tun, was eine 'add_action' erfordert. Dies liegt daran, dass WP alle Plugins lädt und ausführt und DANN das neu hinzugefügte ausführt und dann eine Umleitung durchführt. Sie müssen eine DB-Option festlegen und diese einbinden. Hier ist die Diskussion aus dem CODEX: https://codex.wordpress.org/Function_Reference/register_activation_hook
Versuchen Sie dies außerhalb des Aktivierungs-Hooks und sehen Sie, was passiert. Mit anderen Worten, PHP durchläuft bei jeder Browseranforderung die gesamte Wordpress-Routine. Wenn Sie ein Plugin "aktivieren", lösen Sie tatsächlich zwei Seitenanforderungen an den Server aus. Diese Art von Aktivität wird ordnungsgemäß in der Anforderung der 2. Seite ausgeführt, bei der es sich um die Umleitung handelt.
quelle
Sie können die folgenden Schritte ausführen, um es zum Laufen zu bringen: ` 1. Richten Sie einen Zeitplan ein
2. Registrieren Sie den Aktivierungshaken
3. Fügen Sie dem Ereignis eine Aktion hinzu
quelle