mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
Merge pull request #41015 from nextcloud/background-scan-catch-storage-error
continue background scanning different storages if one fails
This commit is contained in:
commit
5ea69768b0
1 changed files with 30 additions and 26 deletions
|
|
@ -156,33 +156,37 @@ class Scanner extends PublicEmitter {
|
|||
public function backgroundScan($dir) {
|
||||
$mounts = $this->getMounts($dir);
|
||||
foreach ($mounts as $mount) {
|
||||
$storage = $mount->getStorage();
|
||||
if (is_null($storage)) {
|
||||
continue;
|
||||
try {
|
||||
$storage = $mount->getStorage();
|
||||
if (is_null($storage)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// don't bother scanning failed storages (shortcut for same result)
|
||||
if ($storage->instanceOfStorage(FailedStorage::class)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$scanner = $storage->getScanner();
|
||||
$this->attachListener($mount);
|
||||
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'removeFromCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'updateCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'addToCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
|
||||
$propagator = $storage->getPropagator();
|
||||
$propagator->beginBatch();
|
||||
$scanner->backgroundScan();
|
||||
$propagator->commitBatch();
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error("Error while trying to scan mount as {$mount->getMountPoint()}:" . $e->getMessage(), ['exception' => $e, 'app' => 'files']);
|
||||
}
|
||||
|
||||
// don't bother scanning failed storages (shortcut for same result)
|
||||
if ($storage->instanceOfStorage(FailedStorage::class)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$scanner = $storage->getScanner();
|
||||
$this->attachListener($mount);
|
||||
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'removeFromCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'updateCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
$scanner->listen('\OC\Files\Cache\Scanner', 'addToCache', function ($path) use ($storage) {
|
||||
$this->triggerPropagator($storage, $path);
|
||||
});
|
||||
|
||||
$propagator = $storage->getPropagator();
|
||||
$propagator->beginBatch();
|
||||
$scanner->backgroundScan();
|
||||
$propagator->commitBatch();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue