mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
fix(TaskProcessing\Manager): Always use distributed cache and use PHP serialize
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
parent
9223794d49
commit
49a52126ab
1 changed files with 3 additions and 6 deletions
|
|
@ -81,7 +81,6 @@ class Manager implements IManager {
|
|||
private IAppData $appData;
|
||||
private ?array $preferences = null;
|
||||
private ?array $providersById = null;
|
||||
private ICache $cache;
|
||||
private ICache $distributedCache;
|
||||
|
||||
public function __construct(
|
||||
|
|
@ -101,7 +100,6 @@ class Manager implements IManager {
|
|||
ICacheFactory $cacheFactory,
|
||||
) {
|
||||
$this->appData = $appDataFactory->get('core');
|
||||
$this->cache = $cacheFactory->createLocal('task_processing::');
|
||||
$this->distributedCache = $cacheFactory->createDistributed('task_processing::');
|
||||
}
|
||||
|
||||
|
|
@ -767,9 +765,8 @@ class Manager implements IManager {
|
|||
}
|
||||
|
||||
public function getAvailableTaskTypes(bool $showDisabled = false): array {
|
||||
if ($this->availableTaskTypes === null) {
|
||||
// We use local cache only because distributed cache uses JSOn stringify which would botch our ShapeDescriptor objects
|
||||
$this->availableTaskTypes = $this->cache->get('available_task_types');
|
||||
if ($this->availableTaskTypes === null && $this->distributedCache->get('available_task_types_v2') !== null) {
|
||||
$this->availableTaskTypes = unserialize($this->distributedCache->get('available_task_types_v2'));
|
||||
}
|
||||
// Either we have no cache or showDisabled is turned on, which we don't want to cache, ever.
|
||||
if ($this->availableTaskTypes === null || $showDisabled) {
|
||||
|
|
@ -812,7 +809,7 @@ class Manager implements IManager {
|
|||
}
|
||||
|
||||
$this->availableTaskTypes = $availableTaskTypes;
|
||||
$this->cache->set('available_task_types', $this->availableTaskTypes, 60);
|
||||
$this->distributedCache->set('available_task_types_v2', serialize($this->availableTaskTypes), 60);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue