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

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • 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
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 1 Woche 4 Tagen
  • Textboxen mit Tabelle
    vor 1 Woche 4 Tagen
  • Du sollst ja auch keine
    vor 1 Woche 4 Tagen
  • Theme
    vor 1 Woche 4 Tagen
  • Welches Theme benutzt du
    vor 1 Woche 4 Tagen
  • Mit Responsive Raster hatte
    vor 1 Woche 5 Tagen
  • Hallo Alex,um das Häkchen
    vor 1 Woche 5 Tagen
  • Modul view_unpublished
    vor 1 Woche 6 Tagen
  • Modul "override node options"
    vor 2 Wochen 10 Stunden
  • Im Grunde ist dass ein
    vor 2 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20478

Neue User:

  • Stevebok
  • Robertnobia
  • AltonRaf

» Alle User anzeigen

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