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 - 16: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 - 13: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 - 17: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 - 08: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 - 19: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

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 14 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 17 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 27 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