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?