sql >> Database teknologi >  >> RDS >> Mysql

Brug af gaffel i Ruby on Rails til at skabe parallel proces

Problemet er, at en forgrenet proces arver nogle af sine forældres ressourcer, såsom dens filbeskrivelser. Især en sådan delt ressource er MySQL-forbindelsen. Når den underordnede proces afslutter sin e-mail-afsendelse og afslutter, lukker den MySQL-forbindelsen, hvilket lukker forbindelsen til forældreprocessen.

Hvis du fortsætter ad denne vej (og den er fyldt med lignende finesser), skal du gøre noget som dette:

# 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

Du bliver nødt til at gøre lignende ting med tjenester som memcached eller mongodb, hvis du bruger dem.



  1. Bedste måde at få resultattælling, før LIMIT blev anvendt

  2. MySQL:hvordan man får x antal resultater pr. gruppering

  3. Er der en måde at få sidst indsatte id for en NON - auto inkrementeret kolonne i MySQL?

  4. Sådan returneres en liste over understøttede områder i Oracle