sql >> Databáze >  >> RDS >> Mysql

Použití fork v Ruby on Rails pro vytvoření paralelního procesu

Problém je v tom, že rozvětvený proces zdědí některé zdroje svých rodičů, jako jsou deskriptory souborů. Konkrétně jedním takovým sdíleným zdrojem je připojení MySQL. Když podřízený proces dokončí odesílání e-mailu a ukončí se, uzavře připojení MySQL, čímž se uzavře připojení nadřazených procesů.

Pokud budete pokračovat touto cestou (a je plná podobných jemností), musíte udělat něco takového:

# 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

Pokud je používáte, budete muset udělat podobnou věc se službami jako memcached nebo mongodb.



  1. Oracle:DDL a vrácení transakcí

  2. Jak optimalizovat tento komplikovaný EAV MYSQL dotaz?

  3. nodejs mysql Chyba:Připojení ztraceno Server ukončil připojení

  4. mysql aktualizuje více sloupců se stejným now()