diff --git a/lib/private/Snowflake/FileSequence.php b/lib/private/Snowflake/FileSequence.php index 665b447c0c30c..0a6c0c98ede05 100644 --- a/lib/private/Snowflake/FileSequence.php +++ b/lib/private/Snowflake/FileSequence.php @@ -20,12 +20,11 @@ class FileSequence implements ISequence { /** Delete sequences after SEQUENCE_TTL seconds **/ private const SEQUENCE_TTL = 30; - private string $workDir; + private ?string $workDir = null; public function __construct( - ITempManager $tempManager, + private ITempManager $tempManager, ) { - $this->workDir = $tempManager->getTemporaryFolder('.snowflakes'); } #[Override] @@ -84,6 +83,13 @@ public function nextId(int $serverId, int $seconds, int $milliseconds): int { } private function getFilePath(int $fileId): string { - return $this->workDir . sprintf(self::LOCK_FILE_FORMAT, $fileId); + return $this->getWorkDir() . sprintf(self::LOCK_FILE_FORMAT, $fileId); + } + + private function getWorkDir(): string { + if ($this->workDir === null || !is_dir($this->workDir)) { + $this->workDir = $this->tempManager->getTemporaryFolder('.snowflakes'); + } + return $this->workDir; } }