mirror of
https://github.com/friendica/friendica
synced 2025-04-25 02:30:11 +00:00
Adding multihost - locking
Adding Unit-Tests for it
This commit is contained in:
parent
b07dfbb03f
commit
aac94d1d74
22 changed files with 741 additions and 154 deletions
|
@ -10,6 +10,7 @@ namespace Friendica\Core;
|
|||
*/
|
||||
|
||||
use Friendica\Core\Cache\CacheDriverFactory;
|
||||
use Friendica\Core\Cache\IMemoryCacheDriver;
|
||||
|
||||
/**
|
||||
* @brief This class contain Functions for preventing parallel execution of functions
|
||||
|
@ -29,17 +30,23 @@ class Lock
|
|||
switch ($lock_driver) {
|
||||
case 'memcache':
|
||||
$cache_driver = CacheDriverFactory::create('memcache');
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
if ($cache_driver instanceof IMemoryCacheDriver) {
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'memcached':
|
||||
$cache_driver = CacheDriverFactory::create('memcached');
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
if ($cache_driver instanceof IMemoryCacheDriver) {
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'redis':
|
||||
$cache_driver = CacheDriverFactory::create('redis');
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
if ($cache_driver instanceof IMemoryCacheDriver) {
|
||||
self::$driver = new Lock\CacheLockDriver($cache_driver);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'database':
|
||||
|
@ -85,7 +92,9 @@ class Lock
|
|||
if ($cache_driver != 'database') {
|
||||
try {
|
||||
$lock_driver = CacheDriverFactory::create($cache_driver);
|
||||
self::$driver = new Lock\CacheLockDriver($lock_driver);
|
||||
if ($lock_driver instanceof IMemoryCacheDriver) {
|
||||
self::$driver = new Lock\CacheLockDriver($lock_driver);
|
||||
}
|
||||
return;
|
||||
} catch (\Exception $exception) {
|
||||
logger('Using Cache driver for locking failed: ' . $exception->getMessage());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue