Auf meinem Discourse-Forum wird beim Klicken auf das Glockensymbol für Benachrichtigungen ständig der Ladebalken angezeigt. Im Lade-Menü steht: „Langsam, zu viele Anfragen von dieser IP-Adresse.
Wie nutzen Sie Cloudflare im Einzelnen?
Hier ist ein sehr relevantes Thema:
Haben Sie die dort genannten drei Schritte befolgt?
Ja, habe ich, und es funktionierte einwandfrei, bis zum letzten Beta-Update.
Im Großen und Ganzen funktioniert es auch weiterhin gut. Nur die Benachrichtigungen verursachen Probleme; es werden in Abständen von wenigen Sekunden unendlich viele Anfragen gestellt.
Und hier ist meine Konsole:
Und hier ist die geöffnete Datei:
Deaktiviere Cloudflare, es beschädigt deine Website.
Ich nutze den kostenlosen Plan von Cloudflare und das Cloudflare-SSL-Paket für 5 $. Keine der Cloudflare-Funktionen ist aktiviert: Rocket Loader ist ausgeschaltet, alle anderen Optimierungen wie Minifizierung usw. sind deaktiviert, und weitere Funktionen (z. B. Railgun) sind im kostenlosen Plan gar nicht verfügbar. Das Caching ist so eingestellt, dass es die vorhandenen Origin-Header respektiert. Es hat alles einwandfrei funktioniert, bis mir aufgefallen ist, dass ich über /admin/upgrade auf den Master-Git-Branch aktualisiert habe – das könnte die Dinge durcheinandergebracht haben. Ich habe die Skripte und Erwähnungen später entfernt, aber es wird weiterhin wiederholt nach Benachrichtigungen geprüft. Nur die Benachrichtigungen verursachen das Problem; alles andere funktioniert.
Ich verwende Cloudflare, um meine auf Amazon S3 gespeicherten Dateien über CloudFront auszuliefern. Ohne Cloudflare würden meine Kosten steigen. Cloudflare dient in meinem Fall nur als DNS- und SSL-Anbieter; die meisten Optimierungen und Funktionen sind deaktiviert, und viele sind im kostenlosen Plan gar nicht verfügbar. Meinen Sie, dass Cloudflare in meinem Szenario immer noch die Ursache ist?
Sollte ich versuchen, das System neu aufzubauen, um die Probleme zu beheben?
P.S.: Ich bin ein großer Fan von StackOverflow, dem CodingHorror-Blog und Discourse. Grüße ![]()
Versuchen Sie zunächst als Experiment, CloudFlare (außer für grundlegendes DNS) zu deaktivieren. Wenn das Problem dadurch verschwindet, erhalten Sie einen wichtigen Hinweis.
Ich habe die orange Wolke von Cloudflare deaktiviert, gewartet, bis der Browser anstelle von Cloudflare ein Let’s Encrypt SSL-Zertifikat anzeigt, um zu überprüfen, dass der Inhalt direkt vom Server und nicht über Cloudflare abgerufen wird. Anschließend habe ich den Build neu gestartet. Wenn ich jetzt auf das Benutzermenü und das Benachrichtigungssymbol klicke, erhalte ich immer noch folgenden Fehler:
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)
Und wenn die Datei geöffnet wird, zeigt sie Folgendes:
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" });
}
});
});
Mir ist gerade aufgefallen, dass dieses Problem nur auftritt, wenn ich als Administrator angemeldet bin und mini_profiler ebenfalls angezeigt wird. Ich habe mich mit einem normalen Benutzer angemeldet, und es funktioniert wie erwartet.
Siehe:
Vielleicht solltest du den gesamten lokalen Speicher leeren.
Ich habe den Speicher bereinigt, und der Quotenfehler wird jetzt nicht mehr angezeigt. Allerdings werden weiterhin mehrere Anfragen gestellt, und ich erhalte eine 429-Antwort mit der Aufforderung, das Tempo zu drosseln. Ich nutze derzeit kein Cloudflare (Sollte ich die Cloudflare-Vorlage auch in app.yml auskommentieren?). Der Fehler tritt weiterhin bei dasherize auf. Diese Fehler treten nur beim Admin-Benutzer auf, und ich werde schnell vom Rate-Limit betroffen.
Welche nicht-offiziellen Plugins und Themes betreibst du? Es ist möglich, dass eines davon eine hohe Anfragenlast erzeugt.
Als Einstieg würde ich zunächst alle Plugins, die du nicht verwendest, auskommentieren. Auch installierte, aber deaktivierte Plugins belasten dein System.
Beginnen Sie damit, alle Plugins von Drittanbietern (die ohne grünes Häkchen) zu deaktivieren. Höchstwahrscheinlich liegt dort Ihr Problem.
Ich habe Cloudflare entfernt und viele Plugins sowie Drittanbieter-Plugins deinstalliert, aber das Problem ist immer noch nicht behoben.
Entferne alles, das kein grünes Häkchen hat, und baue es neu auf.
Stelle sicher, dass derselbe Fehler auf einem anderen Computer auftritt. Vielleicht ist der Speicherplatz voll oder es liegt ein anderes lokales Problem vor.
Auf meinem mobilen Browser funktioniert es
Ich werde mir das ansehen, denn was ist das lokale Problem bei mir? Es liegt wahrscheinlich an dem verfügbaren Speicherplatz und einer langsamen Festplatte. Jedenfalls ist es gut, dass ich mehrere unnötige Plugins entfernt habe ![]()
Es stellt sich heraus, dass ich bei einigen Nutzern immer noch auf dieses Problem stoße.
Ich denke, mein Problem hängt mit dem unten genannten Problem zusammen, und ich erlebe es nach dem Upgrade auf diese Version:
Ich kann nicht herausfinden, was dieses Problem verursacht. Es funktioniert für neue Nutzer, aber bei anderen nicht. Ich habe ein Discourse-Follow-Plugin verwendet und dann auskommentiert. Jetzt sehe ich dieses Problem. Könnte es sein, dass ich dieses Problem habe, weil ich das Plugin entfernt habe? Ich gehe nämlich davon aus, dass es bei Nutzern auftritt, die wahrscheinlich einige Follower hatten oder das Plugin verwendet haben? Das ist eigentlich eine wilde Vermutung. Kann dieses Plugin dafür verantwortlich sein?
Ja, das ist möglich. Da wir das genannte Plugin nicht selbst entwickelt haben, wissen wir nicht, ob dies der Fall ist. Du kannst versuchen, es erneut zu aktivieren und zu prüfen. Falls dies das Problem behebt, melde es im Thema des Plugins.
@Falco Ja, das löst dieses Problem. Ich habe das discourse-follow-Plugin wieder hinzugefügt und das Problem ist behoben. Danke ![]()




