Sur mon forum Discourse, lorsque je clique sur l’icône de la cloche pour les notifications, le chargeur reste affiché. Dans le menu du chargeur, il est indiqué : « Calmez-vous, trop de requêtes depuis cette adresse IP ». J’utilise Cloudflare.
Comment utilisez-vous Cloudflare, exactement ?
Voici un sujet très pertinent :
Avez-vous suivi les trois étapes indiquées là-bas ?
Oui, je l’ai fait et tout fonctionnait parfaitement jusqu’à la dernière mise à jour bêta.
Et cela fonctionne bien dans l’ensemble également. Seules les notifications posent problème : elles génèrent un nombre infini de requêtes toutes les quelques secondes.
Et voici ma console :
Et voici le fichier ouvert :
Désactivez Cloudflare, cela fait planter votre site.
Je suis sur le plan gratuit de Cloudflare et j’utilise l’offre SSL à 5 $ de Cloudflare. Aucune fonctionnalité de Cloudflare n’est activée : Rocket Loader est désactivé, toutes les autres optimisations (minification, etc.) sont également désactivées, et d’autres fonctionnalités comme Railgun ne sont même pas disponibles sur le plan gratuit. La mise en cache est configurée pour respecter les en-têtes existants de l’origine. Tout fonctionnait correctement, mais je viens de réaliser que j’ai peut-être causé des problèmes en passant à la branche master de Git via /admin/upgrade. J’ai ensuite supprimé les scripts et les mentions correspondantes, mais le système continue de vérifier régulièrement les notifications. Seules les notifications posent problème ; tout le reste fonctionne.
J’utilise Cloudflare pour servir mes fichiers stockés sur Amazon S3 via CloudFront. Si je n’utilise pas Cloudflare, mes coûts augmenteront. Cloudflare ne fait que servir de fournisseur DNS et SSL ; la plupart de ses optimisations et fonctionnalités sont désactivées, et beaucoup ne sont même pas disponibles sur le plan gratuit. Pensez-vous que Cloudflare soit toujours en cause dans mon cas ?
Devrais-je essayer de reconstruire pour résoudre les problèmes ?
P.S. : Je suis un grand fan de StackOverflow, du blog CodingHorror et de Discourse. Cordialement ![]()
Essayez d’abord de désactiver CloudFlare (sauf le DNS de base) à titre expérimental. Si le problème disparaît, cela vous donne une indication.
J’ai désactivé le nuage orange de Cloudflare, attendu que le navigateur affiche le certificat SSL de Let’s Encrypt à la place de celui de Cloudflare pour vérifier que le contenu est bien accédé directement depuis le serveur et non via Cloudflare, puis j’ai reconstruit l’application. Maintenant, lorsque je clique sur le menu utilisateur ou l’icône de notification, je rencontre toujours l’erreur suivante :
Uncaught (in promise) DOMException: Quota exceeded.
_application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:77250 Uncaught TypeError: Cannot read property 'dasherize' of undefined
at s.itemHtml (_application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:77250)
at _application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:77390
at _ember_jquery-d1d89874d5f08a664c68007c6c2eef5e3bb1cbd8058291fce7818d8ef4ded8ca.js:39008
at t.u.Mixin.create.c.forEach (_ember_jquery-d1d89874d5f08a664c68007c6c2eef5e3bb1cbd8058291fce7818d8ef4ded8ca.js:38995)
at t.u.Mixin.create.c.map (_ember_jquery-d1d89874d5f08a664c68007c6c2eef5e3bb1cbd8058291fce7818d8ef4ded8ca.js:39007)
at s.html (_application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:77389)
at s.value (_application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:80621)
at s.value (_application-977ce16935600e0a620c1ea565154ab68e46f60a9fe0f207139e0f2128dd9474.js:80371)
at s (_vendor-7fd29296ee54f8a7ced9508b106a09ec4aae4912ed1cf10eceb7eb2acca03309.js:20669)
at t.exports (_vendor-7fd29296ee54f8a7ced9508b106a09ec4aae4912ed1cf10eceb7eb2acca03309.js:20652)
Et lorsque le fichier est ouvert, il affiche ce qui suit :
define("discourse/widgets/quick-access-notifications", ["discourse/lib/ajax", "discourse/widgets/widget", "discourse/widgets/quick-access-panel"], function (_ajax, _widget, _quickAccessPanel) {
"use strict";
(0, _widget.createWidgetFrom)(_quickAccessPanel.default, "quick-access-notifications", {
buildKey: function buildKey() {
return "quick-access-notifications";
},
emptyStatePlaceholderItemKey: "notifications.empty",
markReadRequest: function markReadRequest() {
return (0, _ajax.ajax)("/notifications/mark-read", { type: "PUT" });
},
newItemsLoaded: function newItemsLoaded() {
if (!this.currentUser.enforcedSecondFactor) {
this.currentUser.set("unread_notifications", 0);
}
},
itemHtml: function itemHtml(notification) {
var notificationName = this.site.notificationLookup[notification.notification_type];
return this.attach(notificationName.dasherize() + "-notification-item", notification, {}, { fallbackWidgetName: "default-notification-item" });
},
findNewItems: function findNewItems() {
return this._findStaleItemsInStore().refresh();
},
showAllHref: function showAllHref() {
return this.attrs.path + "/notifications";
},
hasUnread: function hasUnread() {
return this.getItems().filterBy("read", false).length > 0;
},
_findStaleItemsInStore: function _findStaleItemsInStore() {
return this.store.findStale("notification", {
recent: true,
silent: this.currentUser.enforcedSecondFactor,
limit: this.estimateItemLimit()
}, { cacheKey: "recent-notifications" });
}
});
});
Je viens de remarquer que ce problème ne se produit que lorsque je suis connecté en tant qu’utilisateur administrateur et que mini_profiler est également affiché. Je me suis connecté avec un utilisateur normal et tout fonctionne comme prévu.
Voir :
Essayez peut-être de vider tout le stockage local.
J’ai vidé le stockage, l’erreur de quota n’apparaît plus. Cependant, l’application continue d’effectuer plusieurs requêtes et je reçois une réponse 429 m’indiquant de ralentir. Je n’utilise plus Cloudflare (Devrais-je également commenter le modèle Cloudflare dans app.yml ?). L’erreur est identique à dasherize. Ces erreurs ne concernent que l’utilisateur administrateur, et je me fais rapidement limiter le taux de requêtes.
Quels plugins et thèmes non officiels utilisez-vous ? Il est possible que l’un d’eux génère une charge de requêtes importante.
Pour commencer, je vous conseillerais de commenter tous les plugins que vous n’utilisez pas. Même installés mais désactivés, ils continuent de solliciter votre système.
Commencez par désactiver tous les plugins tiers (ceux sans la coche verte). Il s’agit très probablement de la cause de votre problème.
J’ai désactivé Cloudflare et supprimé de nombreux plugins et plugins tiers, mais le problème n’est toujours pas résolu.
Supprimez tout ce qui n’a pas une coche verte et reconstruisez.
Vérifiez que la même erreur se produit sur un autre ordinateur ; peut-être que votre disque est plein ou que vous rencontrez un autre problème local.
Sur mon navigateur mobile, ça fonctionne
Je vais examiner cela, car quel est le problème local que j’ai ? C’est probablement lié à l’espace disque et au disque dur lent. Quoi qu’il en soit, c’est bien que j’aie supprimé plusieurs plugins inutiles ![]()
Il s’avère que je rencontre toujours ce problème avec certains utilisateurs.
Je pense que mon problème est lié à celui mentionné ci-dessous et je le constate depuis la mise à niveau vers cette version :
Je n’arrive pas à déterminer ce qui cause ce problème. Cela fonctionne pour les nouveaux utilisateurs, mais pas pour les autres. J’utilisais un plugin Discourse Follow, que j’ai ensuite désactivé. Maintenant, je constate ce problème. Serait-il possible que ce problème soit dû à la suppression de ce plugin ? Je suppose en effet que cela affecte les utilisateurs qui avaient probablement des abonnés ou qui utilisaient ce plugin. C’est une hypothèse un peu farfelue en réalité. Ce plugin pourrait-il en être la cause ?
Oui, c’est possible. Comme nous ne possédons pas ledit plugin, nous ne savons pas si c’est le cas. Vous pouvez essayer de le réactiver et de vérifier. Si cela résout le problème, signalez-le dans le sujet dédié au plugin.
@Falco Oui, cela résout ce problème. J’ai réactivé le plugin discourse-follow et cela a résolu le problème. Merci ![]()




