Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Wie befülle ich den Cache automatisch? [gelöst]

Eingetragen von PhilippCar (92)
am 13.07.2022 - 17:02 Uhr in
  • Modul-Entwicklung
  • Drupal 8.x oder neuer

Mit folgendem Befehl kann ich über ein Costum Module den Cache leeren:

drupal_flush_all_caches();

Jedoch möchte ich - z.B. über einen Cron-Job - alle Caches wieder befüllen, damit die Ladezeit auch für den 1. Aufruf gering sind. Gibt es hierfür einen Befehl? Oder hat jemand eine Idee für eine Vorgehensweise?

‹ Persönlichkeitstest / Personality Quiz Wie befülle ich den Cache automatisch? [gelöst] ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde das ehrlich gesagt

Eingetragen von tobi-berlin (857)
am 22.07.2022 - 14:31 Uhr

Ich würde das ehrlich gesagt lassen. Drupal ist ja sehr gut darin, die verschiedenen Bereiche einer Seite dynamisch zu cachen, abhängig von der gerade besuchten Seite. "Alle Caches wieder befüllen" macht daher eigentlich keinen Sinn, weil nicht alles, was irgendwann mal gecacht war, auch immer wieder benötigt wird. "Alle Caches" ist viel zu schwammig und umfangreich. Und drupal_flush_all_caches() baut auch einige der Caches wieder auf, jetzt kein Cache bezüglich Rendering, aber einiges an Zwischenspeichern wird auch wieder aufgefüllt.

Wenn der erste Seitenaufruf sehr, sehr, sehr lang ist, würde ich an Deiner Stelle lieber schauen, ob Du an anderer Stelle optimieren kannst. Aber wenn das immer nur der erste Seitenaufruf ist und der jetzt auch nicht gleich 10 Sekunden braucht, würde ich einfach nicht so oft den Cache löschen :)

Das einzige, was mir einfallen würde, wäre entweder ein Clickbot, der über die Seite surft und damit auf jeder Seite die entsprechenden Bereiche zwischenspeichert (womit Du vorab definieren müsstest, welche Seiten das sein sollen), oder irdendeine Art von serverseitigem Pre-Rendering, wie er manchmal für Angular, React u.ä. Frameworks verwendet wird (und ich glaube, die funktionieren oft auch mit solchen Clickbots oder virtuellen Browsern). Die Frage ist aus meiner Sicht, wie groß das Projekt ist: schon ab 100 Seiten würde ich das so nicht mehr tun, weil der Aufwand, jede Seite zu cachen, viel zu hoch und oftmals auch umsonst ist (weil die zwischengespeicherten Daten sehr wahrscheinlich eh nie aufgerufen werden).

  • Anmelden oder Registrieren um Kommentare zu schreiben

[gelöst]

Eingetragen von PhilippCar (92)
am 22.07.2022 - 18:13 Uhr

Vielen Dank fürs Feedback Tobi!!!

Ich habe es nun gelöst, indem ich ein Custommodul ausgewählte Seiten aufruft. Dadurch werden jene im Cache zwischengespeichert und auch der erste Aufrufer der Seite hat keine lange Ladezeit.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst Du den Code vielleicht

Eingetragen von tobi-berlin (857)
am 25.07.2022 - 09:46 Uhr

Kannst Du den Code vielleicht irgendwie hier oder in einem Blog teilen? Würde mich interessieren, wie Du das gemacht hast

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da gibt es ehrlich gesagt

Eingetragen von PhilippCar (92)
am 01.08.2022 - 20:40 Uhr

Da gibt es ehrlich gesagt nicht viel Code:

- Custom Module musst du nach einer Vorlage passend der jeweiligen Drupalversion anlegen.
- In der PHP Version werden dann nur 2 Sachen innerhalb der classe/function programiert:

Zitat:

drupal_flush_all_caches();
// cache leeren

und die jeweilige Seite nochmal aufrufen, damit der Cache befüllt wird. z.B. per IFrame in ein HTML-Template
<iframe width="1" height="1" src="'.$iframe_url4.'" frameborder="0" allowfullscreen></iframe>

Und nicht vergessen:
Cache-Interwall auf der config Seite "Performance" auf 0 oder 24 Stunden setzen - je nach ANwendungsfall.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 3 Tagen 12 Stunden
  • Guckst du hier: step by step
    vor 3 Tagen 2 Stunden
  • Guckst du hier: step by step
    vor 3 Tagen 2 Stunden
  • Ich habe ja keine Angst vor
    vor 1 Woche 5 Tagen
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 2 Wochen 18 Stunden
  • Vielen Dank erst einmal, aber
    vor 2 Wochen 2 Tagen
  • Du hast die "Trusted host
    vor 2 Wochen 2 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 4 Wochen 1 Tag
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 4 Wochen 5 Tagen
  • Arrrrg. Nix Tabelle :-D /*
    vor 9 Wochen 9 Stunden

Statistik

Beiträge im Forum: 250284
Registrierte User: 20498

Neue User:

  • Inga GuAph
  • Robertolix
  • DavidBit

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association