Problemet er, at en forgrenet proces arver nogle af sine forældres ressourcer, såsom dens filbeskrivelser. Især en sådan delt ressource er MySQL-forbindelsen. Når den underordnede proces afslutter sin e-mail-afsendelse og afslutter, lukker den MySQL-forbindelsen, hvilket lukker forbindelsen til forældreprocessen.
Hvis du fortsætter ad denne vej (og den er fyldt med lignende finesser), skal du gøre noget som dette:
# 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
Du bliver nødt til at gøre lignende ting med tjenester som memcached eller mongodb, hvis du bruger dem.