FIX: Vermeide das Durchlaufen von Redis-Schlüsseln beim Leeren des 404-Themen-Caches

In #42413 wurde die Cache-Invalidierungslogik für Themen neu gestaltet.

Allerdings würde Discourse.cache.keys("page_not_found_topics:*").each { |key| Discourse.cache.redis.del(key) } alle Redis-Schlüssel durchlaufen, was zu Leistungsproblemen führen und bei einer großen Anzahl von Schlüsseln zu einem Timeout führen könnte.

In diesem Fall könnten Benutzer einen 500-Fehler erhalten, wenn sie ein Thema in eine eingeschränkte Kategorie verschieben.

Dieser Commit beschränkt den Durchlaufbereich auf Discourse.cache.normalize_key("page_not_found_topics:#{locale}"), was deutlich kleiner ist als das gesamte Redis-System, und fügt einen Test hinzu, um die Ausführung von scan_each zu vermeiden. In #42413 wurde die Cache-Invalidierungslogik für Themen neu gestaltet.

2 „Gefällt mir“

vielen Dank, @zogstrip hat es gemerged! :hugs:

1 „Gefällt mir“

Dieses Thema wurde nach 13 Stunden automatisch geschlossen. Neue Antworten sind nicht mehr möglich.