sql >> Database >  >> RDS >> Mysql

Fork gebruiken in Ruby on Rails voor het creëren van een parallel proces

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.



  1. Zijn externe sleutels echt nodig in een database-ontwerp?

  2. Hoe selecteer ik het laatste record van een tabel in SQL?

  3. Een Oracle-database migreren van AWS EC2 naar AWS RDS, deel 4

  4. Waarde van veldA nemen, naar db-functie sturen, waarde teruggeven aan veldB