ChicagoBoss mysql 连接自动断开2 解释

ChicagoBoss mysql 连接自动断爱 提到断开的两种原因

 

Mysql 模认8小时后自动断开,进程应该监听并能主动再次连接。

 

花了点时间读了点源码

 

boss_db:start

       |

       |-------------> boss_db_sup:start_link  <one_for_one>

                                                |

                                                |------------------------>poolboy:start_link  <gen_fsm, db_controller>

                                                                                                              |

                                                                                                              |---------------->poolboy_sup:start_link <simple_one_for_one>

                        |

                        |---------->boss_db_controller:start_link

                                                                   |

                                                                   |------->boss_db_adapter_mysql

 

1、首先在boss_db_controller的init中添加process_flag(trap_exit, true),

并添加
172 handle_info(stop, State) ->
173     error_logger:info_msg("~p:handle_info line ~p stop~n", [?MODULE, ?LINE]),                                                                     
174     {stop, shutdown, State};
175 handle_info({'EXIT', Pid, Why}, State) ->
176     error_logger:info_msg("~p:handle_info line ~p {Pid, Why}=~p~n",
177         [?MODULE, ?LINE, {Pid, Why}]),
178     {stop, shutdown, State};

来主动停止程序,让poolboy_sup重启子进程。
2、其次在boss_db_adapter_mysql.erl
 22     mysql_conn:start(DBHost, DBPort, DBUsername, DBPassword, DBDatabase,                                                                     
 23         fun(_, _, _, _) -> ok end, Encoding, DBIdentifier).
改为
 22     mysql_conn:start_link(DBHost, DBPort, DBUsername, DBPassword, DBDatabase,                                                                     
 23         fun(_, _, _, _) -> ok end, Encoding, DBIdentifier).

修复以上可以解决此问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值