diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-23 11:54:56 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-04-23 11:54:56 +0300 |
commit | 8770fc98e1c3fb42a3341f64107e77df76b2b7ca (patch) | |
tree | 99e7fcf743dd2b2d3a5fdc0f6e2276d9ee631e34 /src/ejabberd_sql_sup.erl | |
parent | Add clear_cache admin command (diff) |
Use round-robin algorithm when selecting worker from DB pool
Diffstat (limited to 'src/ejabberd_sql_sup.erl')
-rw-r--r-- | src/ejabberd_sql_sup.erl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ejabberd_sql_sup.erl b/src/ejabberd_sql_sup.erl index 09aceafb4..d778e32b7 100644 --- a/src/ejabberd_sql_sup.erl +++ b/src/ejabberd_sql_sup.erl @@ -98,7 +98,9 @@ get_pids(Host) -> get_random_pid(Host) -> case get_pids(Host) of [] -> none; - Pids -> lists:nth(erlang:phash(p1_time_compat:unique_integer(), length(Pids)), Pids) + Pids -> + I = randoms:round_robin(length(Pids)) + 1, + lists:nth(I, Pids) end. add_pid(Host, Pid) -> |