summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Karlitschek <frank@owncloud.org>2014-05-26 10:48:44 +0200
committerFrank Karlitschek <frank@owncloud.org>2014-05-26 10:48:44 +0200
commit48d0cebc42e98e3fe3fbb7c1b5b4fdc90db4cf2b (patch)
treebf0af96a28abd0c5beccc89c645b1b2e3e102999
parent790c0e8e7ccc44fc859cfa5b97ef2d8aa1df87d7 (diff)
parent151c48494e0e1c6b8bed2551c50196a67284db0c (diff)
downloadnextcloud-server-48d0cebc42e98e3fe3fbb7c1b5b4fdc90db4cf2b.tar.gz
nextcloud-server-48d0cebc42e98e3fe3fbb7c1b5b4fdc90db4cf2b.zip
Merge pull request #8674 from owncloud/watch-policy
Add a config option for setting the filesystem watcher policy
-rwxr-xr-xconfig/config.sample.php11
-rw-r--r--lib/private/files/cache/watcher.php2
-rw-r--r--lib/private/files/storage/common.php2
3 files changed, 13 insertions, 2 deletions
diff --git a/config/config.sample.php b/config/config.sample.php
index 708e8367023..80694837edc 100755
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -283,5 +283,14 @@ $CONFIG = array(
* cache directory and "$user" is the user.
*
*/
-'cache_path' => ''
+'cache_path' => '',
+
+/*
+ * specifies how often the filesystem is checked for changes made outside owncloud
+ * 0 -> never check the filesystem for outside changes, provides a performance increase when it's certain that no changes are made directly to the filesystem
+ * 1 -> check each file or folder at most once per request, recomended for general use if outside changes might happen
+ * 2 -> check every time the filesystem is used, causes a performance hit when using external storages, not recomended for regular use
+ */
+'filesystem_check_changes' => 1
+
);
diff --git a/lib/private/files/cache/watcher.php b/lib/private/files/cache/watcher.php
index 599752a6eff..5a4f53fb73d 100644
--- a/lib/private/files/cache/watcher.php
+++ b/lib/private/files/cache/watcher.php
@@ -45,7 +45,7 @@ class Watcher {
}
/**
- * @param int $policy either \OC\Files\Cache\Watcher::UPDATE_NEVER, \OC\Files\Cache\Watcher::UPDATE_ONCE, \OC\Files\Cache\Watcher::UPDATE_ALWAYS
+ * @param int $policy either \OC\Files\Cache\Watcher::CHECK_NEVER, \OC\Files\Cache\Watcher::CHECK_ONCE, \OC\Files\Cache\Watcher::CHECK_ALWAYS
*/
public function setPolicy($policy) {
$this->watchPolicy = $policy;
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index b03ae7d0517..cfca8ca008c 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -7,6 +7,7 @@
*/
namespace OC\Files\Storage;
+use OC\Files\Cache\Watcher;
/**
* Storage backend class for providing common filesystem operation methods
@@ -280,6 +281,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function getWatcher($path = '') {
if (!isset($this->watcher)) {
$this->watcher = new \OC\Files\Cache\Watcher($this);
+ $this->watcher->setPolicy(\OC::$server->getConfig()->getSystemValue('filesystem_check_changes', Watcher::CHECK_ONCE));
}
return $this->watcher;
}