diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php index 84bfbcca190c9..0e1c830ead740 100644 --- a/lib/private/TaskProcessing/Manager.php +++ b/lib/private/TaskProcessing/Manager.php @@ -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 @@ public function __construct( ICacheFactory $cacheFactory, ) { $this->appData = $appDataFactory->get('core'); - $this->cache = $cacheFactory->createLocal('task_processing::'); $this->distributedCache = $cacheFactory->createDistributed('task_processing::'); } @@ -741,8 +739,10 @@ public function getPreferredProvider(string $taskTypeId) { public function getAvailableTaskTypes(): 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'); + $cachedValue = $this->distributedCache->get('available_task_types_v2'); + if ($cachedValue !== null) { + $this->availableTaskTypes = unserialize($cachedValue); + } } if ($this->availableTaskTypes === null) { $taskTypes = $this->_getTaskTypes(); @@ -775,7 +775,7 @@ public function getAvailableTaskTypes(): array { } $this->availableTaskTypes = $availableTaskTypes; - $this->cache->set('available_task_types', $this->availableTaskTypes, 60); + $this->distributedCache->set('available_task_types_v2', serialize($this->availableTaskTypes), 60); } return $this->availableTaskTypes;