Merge pull request #13192 from owncloud/cache_binary_path
Use memcache for findBinaryPath
This commit is contained in:
commit
d4355cafc6
|
@ -882,13 +882,19 @@ class OC_Helper {
|
|||
* @return null|string
|
||||
*/
|
||||
public static function findBinaryPath($program) {
|
||||
$memcache = \OC::$server->getMemCacheFactory()->create('findBinaryPath');
|
||||
if ($memcache->hasKey($program)) {
|
||||
return $memcache->get($program);
|
||||
}
|
||||
$result = null;
|
||||
if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) {
|
||||
exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode);
|
||||
if ($returnCode === 0 && count($output) > 0) {
|
||||
return escapeshellcmd($output[0]);
|
||||
$result = escapeshellcmd($output[0]);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
$memcache->set($program, $result, 3600);
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,7 +24,7 @@ class Factory implements ICacheFactory {
|
|||
}
|
||||
|
||||
/**
|
||||
* get a cache instance, will return null if no backend is available
|
||||
* get a cache instance, or Null backend if no backend available
|
||||
*
|
||||
* @param string $prefix
|
||||
* @return \OC\Memcache\Cache
|
||||
|
@ -42,7 +42,7 @@ class Factory implements ICacheFactory {
|
|||
} elseif (Memcached::isAvailable()) {
|
||||
return new Memcached($prefix);
|
||||
} else {
|
||||
return null;
|
||||
return new Null($prefix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2015 Robin McCorkell <rmccorkell@karoshi.org.uk>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace OC\Memcache;
|
||||
|
||||
class Null extends Cache {
|
||||
public function get($key) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public function set($key, $value, $ttl = 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function hasKey($key) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function remove($key) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function clear($prefix = '') {
|
||||
return true;
|
||||
}
|
||||
|
||||
static public function isAvailable() {
|
||||
return true;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue