Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Kein echtes Rate-Limiting, sondern eine Änderung der Strategie für den Download von Mediendateien
Disclaimer: Dies ist kein echtes Einschränken der Download-Rate. Vielmehr wurde die Download-Strategie umgestellt, sodass die Mediendateien nicht mehr direkt beim Importieren einer Gruppe heruntergeladen werden. Stattdessen werden die Dateien erst nach der Erstellung der Gruppe jeder für sich einer Download-Warteschlange hinzugefügt. Dadurch wird der Importprozess wesentlich schneller, und der Download erfolgt im Hintergrund. Die Geschwindigkeit mit der runtergeladen wird, kann kontrolliert werden in dem zwischen jedem download eine pause eingelegt wird.
Dies ändert, dass die Mediendateien beim Import von .tsv-Dateien nicht mehr direkt geladen werden. Stattdessen wird nach dem Import, sobald die Gruppe erstellt wurde, für jede Mediendatei ein MediaDownloadTask erstellt und einer PriorityBlockingQueue hinzugefügt.
Diese PriorityBlockingQueue ist automatisch nach dem Datum des Posts sortiert, zu dem die Mediendatei gehört. Dadurch werden zuerst die Posts heruntergeladen, die vermutlich früher veröffentlicht werden sollen.
Die Queue wird mithilfe eines oder mehrerer unendlich laufender Threads abgearbeitet (der Threadpool ist über die application.properties konfigurierbar). Nach dem Download einer Mediendatei wartet der Thread eine festgelegte Anzahl an Millisekunden (ebenfalls in den application.properties einstellbar), bevor er das nächste Bild herunterlädt.
Beim manuellen Hinzufügen von Medien wurde nichts verändert; dies geschieht weiterhin direkt beim Hochladen eines Bildes.
Dinge zu beachten: