簡體   English   中英

如果我將一個進程分解為ruby,我是否需要重新連接到Mysql DB?

[英]If I Fork a process in ruby, do I need to reconnect to Mysql DB?

我正在使用以下環境。

  • Rails 3.1
  • 獨角獸
  • Mysql的

我必須分叉一個生成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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM