<div dir="ltr">You don't need to modify eredis per se. You can create a worker that is between poolboy and eredis that tracks the connected/disconnected semantics as Devin described. Unfortunately I don't know of any sample Erlang code but, if you don't mind, here is a similar solution using redo written in Elixir:<div><div><br></div><div><a href="https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/pubsub/redis_conn.ex">https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/pubsub/redis_conn.ex</a><br></div><div><br></div><div>To use it, you checkout the worker above from the pool, ask the redis connection to the worker and do the operations you want to in the connection as usual.</div></div><div><br></div><div>As a note, I did find it a bit weird that eredis handles disconnects automatically but it does not handle the case where it can't connect to Redis on start_link. It would be handful if they supported lazy connections (i.e. don't connect on start_link but on first command). They already have all the code to handle this, it is just a matter of supporting it on start_link too.<br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div><br></div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div></div></div>
<br><div class="gmail_quote">On Tue, Apr 14, 2015 at 10:26 AM, linbo liao <span dir="ltr"><<a href="mailto:llbgurs@gmail.com" target="_blank">llbgurs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi,<br><br></div>I open an issue for poolboy (<a href="https://github.com/devinus/poolboy/issues/72" target="_blank">https://github.com/devinus/poolboy/issues/72</a>), but looks author doesn't think this is an issue.<br><br></div><div>Looks like to solve this issue have two ways:<br><br></div><div>1. Modify eredis client,  start_link still return ok when connect failed, and when use it should check eredis socket alive or not<br><br></div><div>2. Modify poolboy library, protected all logic when call new_worker failed.<br></div><div><br></div>But it require change ereids or poolboy code, I was wondering to know anyone hit this issue, how to resolve it?<br><br></div>Thanks,<br></div>Linbo<br></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>