Also hier ist mein Problem. Ich habe die Anforderung, eine Discourse-Produktionsinstanz im Wesentlichen mit jeweils etwa 200 Beiträgen aus einer Plugin-Admin-Aktion zu füllen. Diese Beiträge werden von einem von zehn verschiedenen regulären Benutzern erstellt. Der Grund, warum dies eine Plugin-Aktion ist, liegt darin, dass die Benutzer dieser speziellen Instanz ein Team von Moderatoren haben, das sie ausbilden möchten, und sie einige Testbeiträge zum Trainieren sowie die Möglichkeit benötigten, bei Bedarf weitere zu generieren.
Ich habe dies problemlos gelöst, indem ich skip_validations: true an PostCreator.new übergeben habe. Nun gibt es jedoch die Anforderung, dass einige der erstellten Beiträge auch gemeldet werden sollen.
Ich verwende PostActionCreator.create, um einige dieser Beiträge zu melden, stoße dabei aber auf den Rate-Limiter hier: discourse/lib/post_action_creator.rb at ad7a13921f2af8c792530c84386b64911c8e7ea2 · discourse/discourse · GitHub
Ich habe zunächst versucht, den RateLimiter zu deaktivieren, was jedoch dazu führte, dass mein Aktion den Server-Prozess schließlich abstürzen ließ, möglicherweise als ich versuchte, ihn wieder zu aktivieren. Dann wurde mir klar, dass dies ohnehin wahrscheinlich keine gute Idee war.
Meine Frage ist also: Gibt es einen besseren Weg, den Rate-Limiter zu umgehen, wenn man einen beliebigen Code ausführt, also so etwas wie:
RateLimiter.bypass do
# Führe Code aus, der nicht vom Rate-Limiter betroffen ist
end
Oder muss ich im Grunde genommen nur den Großteil dessen kopieren, was PostActionCreator tut, und die problematische Zeile weglassen?
Jede Hilfe wäre sehr geschätzt! Ich bin noch dabei, einen Großteil des Discourse-Codes zu verstehen, daher ist mir bewusst, dass ich wahrscheinlich etwas übersehen habe, was dies erheblich vereinfachen würde!