Batching of forked processes in ruby
Sometimes the fun in not being a full-time (or good) programmer is coming up with odd solutions to problems that a real programmer would scoff/laugh at. Recently I had to devise a way to power through a huge number of processes in one of my scripts, without fork bombing my system. I came up with using the modulus operator and Process.waitall to force my script to halt after a batch of jobs started.
batch_incrementor = 0 batch_size = 10 50.times do |i| fork do puts i sleep 10 end batch_incrementor += 1 if (batch_incrementor/batch_size.to_f)%1 == 0.0 Process.waitall end end
I'm sure this method isn't original or new, just new to me.
If any real programmers read this and have better ways, please let me know! I'm always ready to learn more.