Problém je v tom, že rozvětvený proces zdědí některé zdroje svých rodičů, jako jsou deskriptory souborů. Konkrétně jedním takovým sdíleným zdrojem je připojení MySQL. Když podřízený proces dokončí odesílání e-mailu a ukončí se, uzavře připojení MySQL, čímž se uzavře připojení nadřazených procesů.
Pokud budete pokračovat touto cestou (a je plná podobných jemností), musíte udělat něco takového:
# Clear existing connections before forking to ensure they do not get inherited.
::ActiveRecord::Base.clear_all_connections!
fork do
# Establish a new connection for each fork.
::ActiveRecord::Base.establish_connection
# The rest of the code for each fork...
end
Pokud je používáte, budete muset udělat podobnou věc se službami jako memcached nebo mongodb.