繁体   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