Hi, zunächst einmal vielen Dank für die neue RSS-Polling-Verwaltungsoberfläche. Das macht einen riesigen Unterschied!
Wir haben eine Website mit Dutzenden von RSS-Feeds. Ich habe in Sidekiq festgestellt, dass einige Jobs für bestimmte Feeds zwanzig Minuten oder länger dauern können. Das verstopft die Warteschlange leicht.
Es gibt die Einstellung RSS polling feed request timeout, aber das ist nicht das Problem. Der RSS-Feed ist schnell verfügbar und lädt zügig (zumindest wenn ich ihn im selben Moment mit meinem Browser teste, während Sidekiq mit demselben Feed zu kämpfen hat). Das Problem scheint zu sein, dass einige RSS-Feeds alle Episoden eines Podcasts enthalten (im Gegensatz zu nur den 10–15 neuesten) UND dass Discourse anscheinend alle diese Einträge verarbeitet, selbst wenn die Episoden bereits heruntergeladen und ohne Änderungen vorliegen. Grundsätzlich kann Sidekiq leicht eine halbe Stunde oder länger mit RSS-Feeds zu kämpfen haben, die keine Änderungen oder neuen Episoden bringen.
Idealerweise würde Discourse schnell erkennen, dass es keine Änderungen gibt, und weitermachen.
Optional könnte es eine Einstellung geben, die das Lesen auf die ersten NN Einträge des Feeds beschränkt.
Oder zumindest ein Zeitlimit, um ein Polling abzubrechen, wenn es nach NN Minuten (5 Minuten, oder höchstens 10) nicht abgeschlossen ist.
Mich interessiert, was genau passiert, wenn ein Feed länger als 10 Minuten zur Verarbeitung braucht und Sidekiq zu 100 % ausgelastet ist. Was genau kann so lange dauern und so aufwendig zu verarbeiten sein?
Denkst du, dass dies im aktuellen Plugin verbessert werden könnte?
ich würde mich freuen, das zu verbessern. Könntest du mir die URL deines Feeds schicken, damit ich es besser lokal testen kann? (Falls du es privat halten möchtest, schick mir gerne eine PN)
Vielen Dank @zogstrip für deine schnelle Antwort! Die RSS-Feeds sind öffentlich und werden sogar ausdrücklich empfohlen für alle, die gerne unabhängige Podcasts und Radiosendungen auf Spanisch hören.
Viele von ihnen nutzen WordPress, und wir können sie bitten, die Anzahl der Einträge in ihrem RSS-Feed anzupassen. Aber viele verwenden iVoox, eine zumindest in spanischsprachigen Ländern beliebte Plattform. Sie liefern alle Episoden einer Sendung in ihrem RSS-Feed aus, sie sind ein (relativ) großes Unternehmen, und es ist schwierig, selbst einen „Kontakt“-Link zu finden, der zu einer erreichbaren Person führt. Also sind wir dort festgefahren. Für deinen Test würde ich damit beginnen, die iVoox-Feeds hinzuzufügen, und dann weitere hinzufügen, falls du noch mehr möchtest.
Vielen herzlichen Dank! Das war schnell und präzise.
Ich bin sehr froh über unseren kleinen Beitrag, dieses Problem gemeldet zu haben. Auch wenn unser Fall ziemlich speziell ist (vermute ich?), wird die Lösung in geringerem Maße die Leistungsoptimierung von praktisch jeder Discourse-Instanz, die dieses Plugin verwendet, unterstützen.
Ich sehe, dass die Patches gemerged wurden. Bedeutet das, dass wir sie jetzt durch ein Discourse-Update erhalten können?
„Merged“ bedeutet, dass die Änderungen im main-Branch vorliegen. In der Regel verfolgen Foren nicht den main-Branch, sondern den latest-Branch. Das heißt, dass nach dem Mergen noch darauf gewartet werden muss, bis die automatischen Tests ausgeführt und bestanden wurden.
Wenn du dir Commits · discourse/discourse · GitHub ansiehst, kannst du sehen, dass dies gerade bei zogstrips Commits passiert ist (dort ist ein grüner Haken zu sehen, während der Commit darüber noch den braunen Punkt hat).
Ich habe die RSS-Feeds wieder aktiviert und der erste RSS-Durchlauf ist größtenteils abgeschlossen. 86 neue Beiträge sind aufgetaucht, viele davon aus den letzten Tagen, was bedeutet, dass mehrere Feeds zuvor ihre Verarbeitung nicht abschließen konnten und dies jetzt getan haben. Sehr gut!
Sehr lange Feeds können einen Job weiterhin lange beschäftigen, aber ich habe nur drei gesehen, die über 10 Minuten hinausgingen. Dieser hier läuft nach 1 Stunde immer noch… Aber er ist wirklich lang, also ist das vielleicht gerechtfertigt? Andererseits ist es an sich schon problematisch, wenn ein einzelner Feed einen Job so lange blockiert. Vielleicht liegt es daran, dass es der erste vollständige Import seit einer Weile war? Ich werde es im nächsten RSS-Durchlauf (der auf 180 Minuten eingestellt ist) erneut prüfen.
Vielleicht hängt sich der Job, der eine Stunde lang läuft, an etwas fest, das über den Import hinausgeht? Ich habe gerade bemerkt, dass alle Beiträge aus diesem Feed scheinbar importiert wurden, inklusive Bilder und allem. Aus Benutzersicht scheint der Import abgeschlossen zu sein. Vielleicht ist es nur ein Ausreißer. Ich melde mich nach ein paar weiteren RSS-Zyklen wieder.
sind diese Feeds „neu“ oder wurden sie bereits alle importiert? Ich habe nicht viel daran getan, die Geschwindigkeit des initialen Imports zu verbessern, da dies weitgehend davon abhängt, wie „schnell“ wir neue Themen erstellen können.