首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

不住机系统,小心 alias_method_chain的重入!小心所有重入

2012-12-23 
不停机系统,小心 alias_method_chain的重入!小心所有重入!ruby动态语言可以做到不停机系统,就是升级部署不

不停机系统,小心 alias_method_chain的重入!小心所有重入!

ruby动态语言可以做到不停机系统,就是升级部署不断服务!这是多么美好,像静态语言是做不到这一点。

?

要实现这一美妙、强大能力之前,要小心所以重入。在实践中发现一个bug,由重入造成的死循环!

?

  def to_json_with_children(options={})    push_children_objects    to_json_without_children(options)    # to_json(options)  end  alias_method_chain :to_json, :children   

?

上面代码两次重入,就会死循环,最后栈溢出!有趣吧,打扫卫生老奶奶走到你身边跟你说,”小伙子,小心栈溢出!“不是玩笑,做程序员真是要小心!

?

alias_method这类方法都要防止重入!即类的动态性状态(ruby),和类状态不在本类中,那么重新load的时候,就可能有副作用。

?

小心,打扫卫生老奶奶走到你身边跟你说,”小伙子,小心栈溢出!”,?千万要当真!

?

?

?

热点排行