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, wenn Sie eine Integration mit den Cron-Befehlen von WP-CLI vornehmen oder wenn Sie einen externen System-Cron planen. Die vollständige ausführliche Erklärung finden Sie unter Cron-Ereignisse und Scheduler und Cron-Hooks für Entwickler.

Übersicht

Das Plugin verwendet WP-Cron für alle seine periodischen Hintergrundarbeiten. WP-Cron ist anfragegesteuert: Ereignisse werden beim nächsten Seitenaufruf am oder nach dem geplanten Zeitpunkt ausgelöst. Richten Sie bei einer Website mit wenig Traffic einen serverseitigen Cron ein, 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ässige 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 von as24ci_cron_start_time (HH:MM, WordPress Website-Zeitzone).
  • Aktiv wenn: as24ci_auto_import_enabled ist '1'. Wird von Scheduler::reschedule() aktualisiert, wann immer die Automatisierungseinstellungen gespeichert werden.
  • Callback: Scheduler::run_scheduled_import()Scheduler::run_import('wp-cron').
  • Sperre: 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 auslösen" 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: Einzelereignisse. 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: as24ci_image_queue_running Transient (~10 Minuten TTL).
  • Batch-Grösse: Scheduler::IMAGE_QUEUE_BATCH_SIZE (30 Bilder pro Batch im aktuellen Quellcode — überprüfen Sie dies vor der Veröffentlichung, falls Sie einen genauen 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-Aktions-Callback wird durch AS24CI\Scheduler gebunden, selbst wenn der KI-Funktionsschalter 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. Geplant durch AS24CI\Plugin bei der Aktivierung, falls nicht bereits geplant; gelöscht bei der Deaktivierung.
  • 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 der 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 Zeit für den ersten Durchlauf wird von as24ci_dq_scan_time abgeleitet (HH:MM in der WordPress Website-Zeitzone). Der Zeitplan wird neu erstellt, wann immer die entsprechenden 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 ist eine Stunde nach der Erstellung des Ereignisses 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 der 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: Einzelereignisse. Geplant nach einem Webhook-Versuch, 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 Mitbewerber-Beobachtungsfunktion 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 Ereignisse aus älteren Installationen löschen kann. Es gibt keine Planung, keine AJAX-Aktion und keine Admin-Benutzeroberfläche dafür. Verlassen Sie sich in externem Code nicht auf diesen Hook.

Importe ausserhalb von WP-Cron auslösen

Es gibt zwei offiziell unterstützte Pfade, um einen Import ausserhalb 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 Referenz zu REST-Endpunkten.
  • Manueller Admin-Trigger — die Schaltfläche "Jetzt auslösen" auf dem Admin-Tab "Import & Limits". Die zugrunde liegende AJAX-Aktion ist as24ci_trigger_import_now.

Das Plugin zeichnet ausserdem 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-Ereignisse können auf einer Website mit wenig Traffic verspätet sein oder ganz ausfallen. Konfigurieren Sie für ein vorhersehbares Verhalten einen serverseitigen Cron 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-Ereignisse aus dem Zeitplan entfernt. Sie werden neu geplant, wenn die Funktion das nächste Mal wieder aktiviert wird und ihr register_hooks() während des Plugin-Bootstraps ausgeführt wird.
  • Der Bildwarteschlangen-Worker verwendet Einzelereignisse anstelle eines wiederkehrenden Zeitplans. Er plant sich selbst nur dann 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 anhand der von Ihnen anvisierten Version, bevor Sie Erweiterungscode veröffentlichen, der diese Hooks überwacht.

Fehlerbehebung

  • as24ci_scheduled_import befindet sich 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.
  • Importläufe melden "Import bereits im Gange". 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.
  • Bildwarteschlange stoppt. Überprüfen Sie die Option as24ci_image_queue_last_run (processed, failed, remaining). Wenn Elemente verbleiben, aber kein Ereignis geplant ist, führen Sie im Admin-Bereich "Bildwarteschlange jetzt verarbeiten" aus, um den Worker neu zu starten.
  • KI-Warteschlange bewegt sich nicht vorwärts. Vergewissern Sie sich, 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 wird zur falschen Zeit ausgeführt. Speichern Sie die relevanten Optionen, um eine Neuplanung auszulösen, und überprüfen Sie die WordPress Website-Zeitzone unter Einstellungen → Allgemein.

Zugehörige Dokumente