Current section
Files
Jump to
Current section
Files
lib/redix_pool.ex
defmodule ExDjango.RedixPool do
@moduledoc """
An example redix redis connections pool
"""
use Supervisor
@redis_connection_params host: "127.0.0.1"
def start_link do
Supervisor.start_link(__MODULE__, [], name: __MODULE__)
end
def init([]) do
pool_opts = [
name: {:local, :redix_poolboy},
worker_module: Redix,
size: 10,
max_overflow: 5,
]
children = [
:poolboy.child_spec(:redix_poolboy, pool_opts, @redis_connection_params)
]
supervise(children, strategy: :one_for_one, name: __MODULE__)
end
def command(command) do
:poolboy.transaction(:redix_poolboy, &Redix.command(&1, command))
end
def command!(command) do
:poolboy.transaction(:redix_poolboy, &Redix.command!(&1, command))
end
def pipeline(commands) do
:poolboy.transaction(:redix_poolboy, &Redix.pipeline(&1, commands))
end
def pipeline!(commands) do
:poolboy.transaction(:redix_poolboy, &Redix.pipeline!(&1, commands))
end
end