Download the PHP package illchuk/illchuk-locker without Composer
On this page you can find all versions of the php package illchuk/illchuk-locker. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download illchuk/illchuk-locker
More information about illchuk/illchuk-locker
Files in illchuk/illchuk-locker
Package illchuk-locker
Short Description Prevent an action for some long amount of time. Hours, days, months, years.
License MIT
Homepage https://github.com/dillchuk/illchuk-locker
Informations about the package illchuk-locker
IllchukLock
Now with 100% code coverage.
Prevent an action for some amount of time. Hours, day, months, years, anything. Allows for multiple locks (e.g. 100/day) and clearing/releasing a lock just made. And it works just like it should, every single lock lasts exactly how long you specify and is taken atomically.
Installation
-
In
application.config.php
, add as follows: - Import into your database
data/illchuk_lock.sql
:
To Use
Either you get the lock or you don't.
Allow Multiple Locks
You can allow any number of locks e.g. 'lock1' => 5/hour, 'lock2' => 100/day. Here's how:
Clearing Locks
Lock with APC
For something more quick-n-dirty, use APC locking. This is adequate for short-term throttling with the usual caveats regarding APC persistence (e.g. some other part of your app might flush the entire cache, a PHP restart, out of memory).
N.B. If takeLock()
fails, don't try to sleep()
it out;
that won't work for some reason to do with how apc_add()
works.
Instead, handle the no-lock condition then try again next request.
All versions of illchuk-locker with dependencies
zendframework/zend-modulemanager Version ^2.5.2
zendframework/zend-db Version ^2.5.2
zendframework/zend-servicemanager Version ^3.0
zendframework/zend-math Version ^2.5.2 || ^3.0