[英]If I Fork a process in ruby, do I need to reconnect to Mysql DB?
我正在使用以下環境。
我必須分叉一個生成invoces的進程。 人們告訴我要用
ActiveRecord::Base.connection.reconnect!
因為有些驅動程序可能會丟失與fork的連接...我找了一些關於這方面的信息,但我比以前更困惑...這是我的懷疑:
1使用之間有什么區別
ActiveRecord::Base.connection.reconnect!
和
::ActiveRecord::Base.clear_all_connections!
在分叉之前
::ActiveRecord::Base.establish_connection
如圖所示? Mysql,在Ruby中使用fork
我應該一直這樣做嗎?
如果答案是YES
有一些地方可以把它作為“分叉配置”嗎?
3分叉進程結束時連接會發生什么? 我應該關閉嗎? 還是會自動關閉? 什么附加到父親的過程連接?
4是否需要所有數據庫連接?
我讀過只適用於Postgres DB的地方......
謝謝
不,從我的觀點來看,你沒有必要重新連接..你只需要連接,如果你想訪問一個不同的數據庫,據我所知rails為自己的mysql處理自己的重新連接。
您需要在fork中建立新連接,即使它沒有數據庫訪問權限。
因為當forked進程退出時,它將關閉它復制的連接,這與其父進程正在使用的連接相同,這可能會中斷父進程。 反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.