So here is my issue. I have a requirement to essentially seed a Discourse production instance with around 200 posts at a time from a plugin admin action. These posts will be ‘created by’ 1 of 10 different regular users. The reason it’s a plugin action is because the users of this particular instance have a team of moderators they want to train up, and wanted some test posts to train them on, and the ability to seed more when they need them.
I got this working fine by passing skip_validations: true
to PostCreator.new
, however now there’s a requirement that some of the created posts are also flagged.
I’m using PostActionCreator.create
to flag some of these posts, but now I’m getting hit by the rate limiter here: https://github.com/discourse/discourse/blob/ad7a13921f2af8c792530c84386b64911c8e7ea2/lib/post_action_creator.rb#L69
I first attempted to disable the RateLimiter
but that was causing my action to crash the server process eventually, possibly when I was trying to turn it back on, and then I realised it probably wasn’t a good idea anyway.
So my question is, is there a better way to bypass the rate limiter when running some arbitrary code i.e. something like:
RateLimiter.bypass do
# run some code not affected by the rate limiter
end
Or do I need to basically just need to copy most of what the PostActionCreator
is doing but leave out the troublesome line?
Any help would be greatly appreciated! I’m still absorbing a lot of the Discourse code so I’m aware I’ve probably missed something that makes this a lot easier!