View Source RedisMutex

Build Status Hex.pm Documentation Total Download License

RedisMutex is a library for creating a Redis lock for a single Redis instance.

Installation

The package can be installed by adding redis_mutex to your list of dependencies in mix.exs:

def deps do
  [
    {:redis_mutex, "~> 0.4.0"}
  ]
end

Usage

  1. Set the redis_url in your config.exs
config :redis_mutex, redis_url: {:system, "REDIS_URL"}

Alternatively, pass redix options directly:

config :redis_mutex,
  redix_config: [
    host: "example.com",
    port: 9999,
    ssl: true,
    socket_opts: [
      customize_hostname_check: [
        match_fun: :public_key.pkix_verify_hostname_match_fun(:https)
      ]
    ]
  ]

2. Call `use RedisMutex` in the module you want to use the lock and use `with_lock` to
lock critical parts of your code.

defmodule PossumLodge do use RedisMutex

def get_oauth do

with_lock("my_key") do
  "Quando omni flunkus moritati"
end

end end


## Tests
To run the portion of the test suite that does not rely on Redis, run the default command:

mix test


To run the full test suite including those portions that depend on a Redis instance running
and being configured in `config/test.exs`, run the following command:

REDIS_TESTS=true mix test --include=redis_dependent