Проблемът е, че разклонения процес наследява някои от ресурсите на своя родител, като файловите дескриптори. По-специално един такъв споделен ресурс е връзката MySQL. Когато дъщерният процес завърши изпращането на имейли и излезе, той затваря връзката с MySQL, което затваря връзката на родителските процеси.
Ако продължите по този път (и той е изпълнен с подобни тънкости), тогава трябва да направите нещо подобно:
# 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
Ще трябва да направите подобно нещо с услуги като memcached или mongodb, ако ги използвате.