Ive recently been trying to figure out a way to make a long running
background task scale accross all CPUs in Ruby on Rails, since
multi-processing (not multi-threading) seems like the way to go.
A theoretical example would be:
code in controller
@mydata = Hash.new
# Start 4 background processes # and start adding data to @mydata # Page loads while the processes are working, displaying # something like "We are currently processing your data"
Question is how to handle reading/writing to @mydata safely because 4
processes would be trying to read/write to it? What is the best way to
approach this problem?