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 © 2010 Eric Chapweske. See LICENSE for details.