Dokumentation · Anhänge

Cron-Hook-Referenz

Dieser Anhang listet jeden WP-Cron-Hook und jedes benutzerdefinierte Intervall auf, das vom ADP Car Market Hub-Plugin registriert wird.

Wann Sie dieses Dokument verwenden sollten

Verwenden Sie diese Referenz, wenn Sie verpasste geplante Aufgaben diagnostizieren, die Integration mit den Cron-Befehlen von WP-CLI durchführen oder einen externen System-Cron planen möchten. Die vollständige ausführliche Erklärung finden Sie unter Cron-Events und Scheduler und Cron-Hooks für Entwickler.

Übersicht

Das Plugin verwendet WP-Cron für alle seine periodischen Hintergrundarbeiten. WP-Cron ist anfragegesteuert: Events werden beim nächsten Seitenaufruf am oder nach dem geplanten Zeitpunkt ausgelöst. Planen Sie auf einer Website mit geringem Traffic einen serverseitigen Cron-Job, um wp-cron.php oder den REST-Endpunkt cron-import des Plugins aufzurufen.

Benutzerdefinierte Intervalle

Intervall-SchlüsselLängeRegistriert inVerwendet von
as24ci_every_5_minutes300 s (5 Min.)Haupt-Plugin-Datei adp-car-market-hub.php. Immer registriert.KI-Generierungswarteschlange.
as24ci_every_6_hours6 Std.AS24CI\Scheduler::add_cron_intervals().Importer, wenn „Alle 6 Stunden“ ausgewählt ist.
as24ci_customN MinutenAS24CI\Scheduler::add_cron_intervals(). N ist as24ci_cron_custom_minutes, begrenzt auf ein Minimum von 15 Minuten.Importer, wenn „Benutzerdefiniert“ ausgewählt ist.

Standardmäßige WordPress-Intervalle (hourly, twicedaily, daily) werden vom Importzeitplan ebenfalls akzeptiert.

Wiederkehrende Cron-Hooks

as24ci_scheduled_import

  • Inhaber: AS24CI\Scheduler (Scheduler::CRON_HOOK).
  • Zeitplan: Gesteuert durch as24ci_cron_schedule (hourly, as24ci_every_6_hours, twicedaily, daily oder as24ci_custom). Für daily/twicedaily stammt die Startzeit aus as24ci_cron_start_time (HH:MM, WordPress Zeitzone der Website).
  • Aktiv wenn: as24ci_auto_import_enabled ist '1'. Wird durch Scheduler::reschedule() aktualisiert, sobald die Automatisierungseinstellungen gespeichert werden.
  • Callback: Scheduler::run_scheduled_import()Scheduler::run_import('wp-cron').
  • Sperre (Lock): as24ci_cron_import_running Transient (~40 Minuten TTL). Veraltete Sperren, die älter als die TTL sind, werden automatisch gelöscht.
  • Hinweise: Wird mit dem manuellen Admin-Button „Jetzt ausführen“ und dem REST-Cron-Endpunkt geteilt. Alle drei Pfade verwenden denselben Scheduler::run_import()-Runner und beachten dieselbe Sperre.

as24ci_image_queue_process

  • Inhaber: AS24CI\Scheduler (Scheduler::IMAGE_QUEUE_HOOK).
  • Zeitplan: Einzelne Events. Der Importer plant den Worker, wenn er Bilder in die Warteschlange stellt, anstatt sie inline herunterzuladen; der Worker plant sich selbst mit wp_schedule_single_event() neu, solange sich Elemente in der Warteschlange befinden.
  • Callback: Scheduler::run_image_queue().
  • Sperre (Lock): as24ci_image_queue_running Transient (~10 Minuten TTL).
  • Batch-Größe: Scheduler::IMAGE_QUEUE_BATCH_SIZE (30 Bilder pro Batch im aktuellen Quellcode — vor der Veröffentlichung überprüfen, falls Sie einen exakten Wert benötigen).
  • Hinweise: Die Warteschlange selbst wird in der Option as24ci_image_queue gespeichert. Statistiken pro Batch werden in as24ci_image_queue_last_run für das Dashboard-Widget und den Tab „System & Hilfe“ geschrieben.

as24ci_process_ai_queue

  • Inhaber: AS24CI\Ai_Assistant (Ai_Assistant::AI_QUEUE_HOOK); der Cron-Action-Callback wird durch AS24CI\Scheduler gebunden, selbst wenn die KI-Funktion deaktiviert ist, sodass WP-Cron immer einen Callback für den Hook hat.
  • Zeitplan: Benutzerdefiniertes Intervall as24ci_every_5_minutes (300 Sekunden). Die Planung wird durch Ai_Assistant::maybe_schedule_ai_queue() gesteuert, was alle Voraussetzungen erzwingt (KI-Funktion aktiviert, verwaltetes Gemini konfiguriert, Automatisierung aktiv).
  • Callback: Ai_Assistant::process_ai_queue().
  • Hinweise: Wenn die KI-Automatisierung deaktiviert oder nicht konfiguriert ist, wird der Hook nicht geplant, aber sein Callback bleibt gebunden, sodass manuelle Auslösungen über den Admin-Bereich weiterhin funktionieren.

as24ci_daily_cleanup

  • Inhaber: AS24CI\Analytics (Analytics::ANALYTICS_CLEANUP_CRON_HOOK).
  • Zeitplan: daily. Wird bei der Aktivierung durch AS24CI\Plugin geplant, falls noch nicht geschehen; wird bei der Deaktivierung gelöscht.
  • Callback: Analytics::cleanup_old_data().
  • Verhalten: Entfernt Analytics-Zeilen, die älter als as24ci_analytics_retention_days sind, aus der Tabelle {$wpdb->prefix}as24ci_analytics.

as24ci_pricing_analysis_cron

  • Inhaber: AS24CI\Pricing_Engine (Pricing_Engine::CRON_HOOK).
  • Zeitplan: daily. Geplant über Pricing_Engine::schedule(); gelöscht über Pricing_Engine::clear_schedule() bei Deaktivierung.
  • Callback: Pricing_Engine::run_daily_analysis().

as24ci_automated_taxonomy_scan

  • Inhaber: AS24CI\Data_Quality_Scanner (Data_Quality_Scanner::CRON_HOOK).
  • Zeitplan: daily oder twicedaily, gesteuert durch as24ci_dq_scan_frequency. Die Startzeit für den ersten Durchlauf wird von as24ci_dq_scan_time abgeleitet (HH:MM in der WordPress Zeitzone der Website). Der Zeitplan wird neu erstellt, sobald die zugehörigen Optionen gespeichert werden.
  • Aktiv wenn: as24ci_dq_scan_enabled ist '1'.
  • Callback: Data_Quality_Scanner::run_scan().

as24ci_license_refresh

  • Inhaber: AS24CI\License_Manager (License_Manager::REFRESH_CRON_HOOK).
  • Zeitplan: daily. Der erste Durchlauf wird eine Stunde nach der Erstellung des Events geplant. Wird verzögert (lazy) von License_Manager::ensure_cron_scheduled() bei admin_init und bei der Plugin-Aktivierung geplant; gelöscht über License_Manager::clear_cron() bei Deaktivierung.
  • Callback: License_Manager::scheduled_refresh() — führt eine Hintergrund-Revalidierung der Lizenz gegenüber der API-Plattform durch.
  • Hinweise: Der Cron-Callback ist immer gebunden; nur die Planung erfolgt verzögert, sodass bei normalen Frontend-Anfragen keine Planungsarbeiten ausgeführt werden.

as24ci_webhook_retry

  • Inhaber: Webhooks-Subsystem.
  • Zeitplan: Einzelne Events. Wird nach einem Webhook-Versuch geplant, um einen nachfolgenden blockierenden Neuversand durchzuführen, sowie für begrenzte exponentielle Wiederholungsversuche bei vorübergehenden Fehlern (~60 s, ~2 Min., ~4 Min., insgesamt bis zu drei Versuche).
  • Hinweise: Überprüfen Sie die genauen Intervalle und die Anzahl der Versuche im aktuellen Quellcode, bevor Sie diese in der Kundendokumentation veröffentlichen.

as24ci_competitor_watcher_cron (nur Legacy-Bereinigung)

Dieser Hook gehörte zu einer entfernten Funktion „Competitor Watcher“ und ist keine aktive Funktion des Plugins. Der Hook-Name wird nur beibehalten, damit Competitor_Watcher::clear_schedule() bei der Deaktivierung des Plugins eventuell verbliebene geplante Events aus älteren Installationen löschen kann. Es gibt dafür keine Planung, keine AJAX-Aktion und keine Admin-Benutzeroberfläche. Verlassen Sie sich in externem Code nicht auf diesen Hook.

Importe außerhalb von WP-Cron auslösen

Es gibt zwei offiziell unterstützte Wege, um einen Import außerhalb von WP-Cron auszulösen, die beide an denselben Scheduler::run_import()-Runner delegieren und dieselbe Sperre beachten:

  • REST-Cron-EndpunktGET /wp-json/as24ci/v1/cron-import mit Token-Authentifizierung. Siehe REST-Endpunkt-Referenz.
  • Manuelle Admin-Auslösung — die Schaltfläche „Jetzt ausführen“ auf dem Admin-Tab „Import & Limits“. Die zugrunde liegende AJAX-Aktion ist as24ci_trigger_import_now.

Das Plugin zeichnet außerdem einen Heartbeat-Zeitstempel in as24ci_last_external_cron_run auf, wann immer eine URL auf der Website mit dem Abfrageparameter ?as24ci_cron=1 aufgerufen wird. Dieser Heartbeat dient nur der Überwachung; er startet keinen Import.

Betriebliche Hinweise

  • WP-Cron-Events können auf einer Website mit geringem Traffic verspätet sein oder ganz ausbleiben. Für ein vorhersehbares Verhalten konfigurieren Sie einen serverseitigen Cron-Job und deaktivieren Sie WP-Cron in wp-config.php (define( 'DISABLE_WP_CRON', true );).
  • Wenn Sie ein Funktionsmodul im Admin-Bereich deaktivieren, werden die zugehörigen Cron-Events aus dem Zeitplan entfernt. Sie werden beim nächsten Aktivieren der Funktion neu geplant, wenn deren register_hooks() während des Plugin-Bootstraps ausgeführt wird.
  • Der Bild-Warteschlangen-Worker verwendet einzelne Events anstelle eines wiederkehrenden Zeitplans. Er plant sich nur selbst neu, wenn sich noch Elemente in der Warteschlange befinden.
  • Alle oben genannten Hook-Namen und Konstanten spiegeln den aktuellen Plugin-Code wider. Überprüfen Sie diese mit der von Ihnen anvisierten Version, bevor Sie Erweiterungscode veröffentlichen, der diese Hooks überwacht.

Fehlerbehebung

  • as24ci_scheduled_import steht in der Cron-Liste, wird aber nie ausgeführt. WP-Cron ist anfragegesteuert. Besuchen Sie entweder die Website, führen Sie wp cron event run --due-now über WP-CLI aus oder konfigurieren Sie einen externen Trigger.
  • Import-Durchläufe melden „Import bereits aktiv“. Die Sperre as24ci_cron_import_running wird von einem anderen Runner gehalten. Das Plugin löscht veraltete Sperren automatisch, sobald sie die TTL überschreiten; andernfalls wird das Transient durch Deaktivieren und erneutes Aktivieren des Plugins gelöscht.
  • Bild-Warteschlange stoppt. Überprüfen Sie die Option as24ci_image_queue_last_run (processed, failed, remaining). Wenn noch Elemente vorhanden sind, aber kein Event geplant ist, führen Sie im Admin-Bereich „Bild-Warteschlange jetzt verarbeiten“ aus, um den Worker neu zu starten.
  • KI-Warteschlange rückt nicht vor. Stellen Sie sicher, dass die KI-Funktion aktiviert ist, die verwaltete Gemini-Konfiguration bereitgestellt ist (Ai_Config::is_configured()) und die Automatisierung eingeschaltet ist; andernfalls bleibt die Planung deaktiviert.
  • Datenqualitäts-Scan läuft zur falschen Zeit. Speichern Sie die relevanten Optionen, um eine Neuplanung auszulösen, und überprüfen Sie die WordPress Zeitzone der Website unter Einstellungen → Allgemein.

Verwandte Dokumente