CORRECTION : Éviter de parcourir les clés Redis lors de la suppression du cache des sujets 404

Dans #42413, la logique d’invalidation du cache des sujets a été repensée.

Cependant, Discourse.cache.keys("page_not_found_topics:*").each { |key| Discourse.cache.redis.del(key) } parcourt toutes les clés Redis, ce qui provoque des problèmes de performances et peut entraîner un dépassement de délai si le nombre de clés est important.

Dans ce cas, les utilisateurs peuvent rencontrer une erreur 500 s’ils déplacent un sujet vers une catégorie restreinte.

Ce commit restreint la portée du parcours à Discourse.cache.normalize_key("page_not_found_topics:#{locale}"), qui est bien plus petite que l’ensemble de Redis, et ajoute également un test pour éviter l’exécution de scan_each. Dans #42413, la logique d’invalidation du cache des sujets a été repensée.