Handle cluster mode for Puma#45
Merged
Merged
Conversation
premature optimisation that was never used and create problems with cluster mode
b85191b to
f03807e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
It's recommended to use the debugbar with puma (or similar) running into a single process (single mode). If for some reason, you're stuck with using cluster mode in dev, this feature is for you. I think one good reason is to have a dev env as close as production as possible.
By default, all requests are stored in memory. Once you have multiple processes, each processes hold their list of request and isolated memories. This PR introduce a new way to store requests using
Rails.cacheso each process are accessing the same list.The same way, ActionCable runs with
asyncdriver by default which holds the connections in memory. It's also incompatible with cluster mode, thecable.ymlneeds to be edited to use Redis, memcache or SolidCable.I'd typically use the same configuration in
developmentandproduction.I'm displaying an error message because when I started working on the debugbar, I was using cluster mode locally and couldn't figure out why some requests "got lost". I probably wasted freaking hours on this!