Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Expirable locking for ActiveRecord
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.document
.gitignore
LICENSE
README.rdoc
Rakefile
VERSION
expirable_locking.gemspec

README.rdoc

expirable_locking

Usage: Provides expirable locking for concurrent processing.

script/generate migration add_expirable_locking_to_my_model locked_at:datetime

class MyModel < ActiveRecord::Base
  extend ExpirableLocking
end

Process A: record.lock_with_expirey
Process A: => true
Process B: record.lock_with_expirey
Process B: => false
Process A: record.unlock
Process A: => true
Process B: record.lock_with_expirey
Process B: => true

By default the lock expires after 10 mintutes, this can be changed by overriding the lock_duration class method.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Eric Chapweske. See LICENSE for details.

Something went wrong with that request. Please try again.