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 wurde.

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-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. 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äß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 von as24ci_cron_start_time (HH:MM, WordPress Website-Zeitzone).
  • Aktiv wenn: as24ci_auto_import_enabled ist '1'. Wird durch Scheduler::reschedule() aktualisiert, wann immer 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 auslösen" und dem REST-Cron-Endpunkt geteilt. Alle drei Pfade verwenden denselben Scheduler::run_import()-Runner und beachten dieselbe Sperre.
  • Universal Import — carcuro: Der carcuro-Connector (AS24CI\Import_Carcuro) klinkt Import_Carcuro::run() in diesen zentralen Hook in register_hooks() ein und hat kein eigenes Cron-Event; er läuft bei jedem zentralen Import mit und ist wirkungslos, ausser carcuro ist aktiviert und ein Firmen-Token ist konfiguriert. Das veraltete Event pro Quelle as24ci_import_carcuro_event (sein Import_Carcuro::CRON_HOOK) wird nicht mehr geplant — register_hooks() bereinigt sich selbst, indem es eventuelle Überbleibsel aus älteren Installationen löscht. Der AutoScout24-Import wird direkt von Scheduler::run_import() gesteuert.

as24ci_import_feed_event

  • Inhaber: AS24CI\Import_Feed (Import_Feed::CRON_HOOK) — die Universal Import-Datei / der Feed-Connector.
  • Zeitplan: Ein standardmässiges WordPress-Intervall (hourly, twicedaily oder daily), das aus den Connector-Einstellungen übernommen wird. Im Gegensatz zu carcuro registriert dieser Connector sein eigenes wiederkehrendes Cron-Event: Import_Feed::reschedule() löscht und plant das Event neu, wann immer die Feed-Einstellungen gespeichert werden, und plant es nur, wenn der Connector aktiviert und eine Feed-URL hinterlegt ist.
  • Callback: Import_Feed::run() → ruft die konfigurierte Datei ab (https / ftp / sftp / Serverpfad) und importiert sie über die gespeicherte Mapping-Vorlage (as24ci_import_csv_template).
  • Hinweise: Gelöscht durch Import_Feed::clear_schedule(). Erfordert eine gespeicherte Mapping-Vorlage, bevor importiert werden kann.

as24ci_import_mail_event

  • Inhaber: AS24CI\Import_Mail (Import_Mail::CRON_HOOK) — der Universal Import-E-Mail-Connector (IMAP).
  • Zeitplan: Ein standardmässiges WordPress-Intervall (hourly, twicedaily oder daily), das aus den Connector-Einstellungen übernommen wird. Dieser Connector registriert ebenfalls sein eigenes wiederkehrendes Cron-Event: Import_Mail::reschedule() löscht und plant es beim Speichern neu und plant es nur, wenn der Connector aktiviert und ein Mailbox-Host hinterlegt ist.
  • Callback: Import_Mail::run() → verbindet sich über IMAP mit der Mailbox, nimmt den unterstützten Anhang der neuesten passenden ungelesenen Nachricht und importiert ihn über die gespeicherte Mapping-Vorlage (as24ci_import_csv_template).
  • Hinweise: Gelöscht durch Import_Mail::clear_schedule(). Erfordert die PHP-Erweiterung imap und eine gespeicherte Mapping-Vorlage.

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 einreiht, anstatt sie direkt 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össe: 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 Callback der Cron-Aktion wird durch AS24CI\Scheduler gebunden, selbst wenn die KI-Funktion deaktiviert ist, sodass WP-Cron immer einen Callback für den Hook registriert 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 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 wird eine Stunde nach der Erstellung des Events geplant. Wird verzögert (lazy) durch 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 für Altlasten-Bereinigung)

Dieser Hook gehörte zu einer entfernten Mitbewerber-Beobachtungsfunktion (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 ausserhalb von WP-Cron auslösen

Es gibt zwei offiziell unterstützte Wege, 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, authentifiziert mit dem Header Authorization: Bearer <token> (der veraltete Query-Parameter ?token=<token> funktioniert zwar noch, wird aber nicht mehr empfohlen, da er das Geheimnis in den Zugriffsprotokollen offenlegt). Siehe Referenz zum REST-Endpunkt.
  • Manuelle Admin-Auslösung — 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 beliebige URL auf der Website mit dem Query-Parameter ?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 wenig Traffic verspätet sein oder ganz ausfallen. Für ein vorhersehbares Verhalten konfigurieren Sie 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-Events aus dem Zeitplan entfernt. Sie werden beim nächsten Mal neu geplant, wenn die Funktion wieder aktiviert wird und ihr register_hooks() während des Plugin-Bootstraps ausgeführt wird.
  • Der Bildwarteschlangen-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 anhand der von Ihnen anvisierten Version, bevor Sie Erweiterungscode veröffentlichen, der diese Hooks überwacht.

Fehlerbehebung

  • as24ci_scheduled_import steht in der Cron-Liste, läuft aber nie. 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 in Ausführung". 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 löscht das Deaktivieren und erneute Aktivieren des Plugins das Transient.
  • Bildwarteschlange stoppt. Überprüfen Sie die Option as24ci_image_queue_last_run (processed, failed, remaining). Wenn Elemente übrig bleiben, aber kein Event 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 läuft zur falschen Zeit. Speichern Sie die entsprechenden Optionen, um eine Neuplanung auszulösen, und überprüfen Sie die Website-Zeitzone WordPress unter Einstellungen → Allgemein.

Zugehörige Dokumente