Vấn đề là một quá trình được phân tách kế thừa một số tài nguyên của cha mẹ của nó, chẳng hạn như các bộ mô tả tệp của nó. Đặc biệt, một tài nguyên được chia sẻ như vậy là kết nối MySQL. Khi quy trình con kết thúc quá trình gửi email và thoát ra, nó sẽ đóng kết nối MySQL, kết nối này sẽ đóng kết nối quy trình mẹ.
Nếu bạn tiếp tục đi theo con đường này (và nó được tạo ra với những nét tinh tế tương tự) thì bạn cần phải làm điều gì đó như sau:
# 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
Bạn sẽ phải làm điều tương tự với các dịch vụ như memcached hoặc mongodb nếu bạn sử dụng những dịch vụ đó.