Skip to content

Commit 8a85c26

Browse files
authored
Resolve Race Condition In TypesenseEngine Due To Jobs Competing To Create Collection (#912)
1 parent 9ed95c2 commit 8a85c26

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/Engines/TypesenseEngine.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use stdClass;
1212
use Typesense\Client as Typesense;
1313
use Typesense\Collection as TypesenseCollection;
14+
use Typesense\Exceptions\ObjectAlreadyExists;
1415
use Typesense\Exceptions\TypesenseClientError;
1516

1617
class TypesenseEngine extends Engine
@@ -636,7 +637,12 @@ protected function getOrCreateCollectionFromModel($model, ?string $collectionNam
636637
$schema['name'] = $model->searchableAs();
637638
}
638639

639-
$this->typesense->getCollections()->create($schema);
640+
try {
641+
// Create the collection in Typesense...
642+
$this->typesense->getCollections()->create($schema);
643+
} catch (ObjectAlreadyExists $e) {
644+
// Collection already exists...
645+
}
640646

641647
$collection->setExists(true);
642648

0 commit comments

Comments
 (0)