Skip to content

DevMike/active_record_mutex

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This gem provides a Mutex that is based on ActiveRecord’s database connection. (At the moment this only works for Mysql.) It can be used to synchronise ruby processes (also on different hosts) via the connected database.

You can use rubygems to fetch the gem and install it for you:

# gem install active_record_mutex

You can also put this line into your Rails environment.rb file

config.gem 'active_record_mutex'

and install the gem via

$ rake gems:install

If you want to synchronize method calls to your model’s methods you can easily do this by passing a mutex instance to ActiveRecord’s synchronize class method. This mutex instance will be named Foo like the ActiveRecord was named:

class Foo < ActiveRecord::Base
  def foo
  end

  synchronize :foo, :with => :mutex
end

If you want more control over the mutex and/or give it a special name you can create Mutex instance like this:

my_mutex = ActiveRecord::Mutex::Mutex.new(:name => 'my_mutex')

Now you can send all messages directly to the Mutex instance.

About

Implementation of a Mutex for Active Record

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Ruby 100.0%