chunk :: integer(),
fun :: update_function()
) :: :ok
- def batch(name, batch, chunk \\ 10, fun \\ &{elem(&1, 0), &2}) do
+ def batch(name, batch, chunk \\ 10, fun \\ &{elem(&1, 0), Enum.uniq([elem(&1, 1) | &2])}) do
:poolboy.transaction(name, fn w ->
GenServer.cast(w, {:batch, batch, chunk, fun})
end)
Logger.debug("Sending batches to: #{inspect(Map.keys(batches))}")
Enum.each(batches, fn {node, batch} ->
- Logger.debug("Sending #{length(batch)} reccords to #{inspect(node)}")
+ Logger.debug("Sending #{length(batch)} records to #{inspect(node)}")
send({name, node}, {:handle_batch, batch})
end)
end
end)
end
- @spec send_sync(name :: module(), nodes :: [node()], key :: String.t(), value :: any()) :: :ok
+ @spec send_update(
+ name :: module(),
+ nodes :: [node()],
+ key :: String.t(),
+ value :: any(),
+ fun :: any()
+ ) :: :ok
defp send_update(name, nodes, key, value, fun) do
Enum.each(nodes, fn n ->
send({name, n}, {:update, key, value, fun})