Het probleem is dat een gevorkt proces enkele van de bronnen van zijn bovenliggende entiteit erft, zoals de bestandsdescriptors. Een van die gedeelde bronnen is met name de MySQL-verbinding. Wanneer het onderliggende proces zijn e-mailverzending voltooit en afsluit, wordt de MySQL-verbinding gesloten, waardoor de verbinding met de bovenliggende processen wordt verbroken.
Als je doorgaat op dit pad (en het wordt bewerkstelligd met vergelijkbare subtiliteiten), dan moet je zoiets als dit doen:
# 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
Je zult hetzelfde moeten doen met services zoals memcached of mongodb als je die gebruikt.