aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sql_sup.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-23 11:54:56 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-04-23 11:54:56 +0300
commit8770fc98e1c3fb42a3341f64107e77df76b2b7ca (patch)
tree99e7fcf743dd2b2d3a5fdc0f6e2276d9ee631e34 /src/ejabberd_sql_sup.erl
parentAdd 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.erl4
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) ->