@mykolaim
PHP developer

Как работать с atomic locks в Laravel?

Нужно использовать кеш для того чтобы работу над одной сущностью производил тот пользователь который ее получил первый, и чтобы она была привязана к этому пользователю в течении определенного времени.

Судя по доке для этого подходят Atomic Locks
но мне не понянта логика их работы, может кто-то более конкретно обьяснить ?
  • Вопрос задан
  • 2122 просмотра
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Ну хз куда уж проще, чем в доке:

$product = Product::first();

$lock = Cache::lock('product_edit.' . $product->id, 10);

if ($lock->get()) {
    // ту-ту-ту, я делаю что хочу
    $product->name = 'flower pot';
    $product->save();

    // ла-ла-ла, я сделал что хотел
    // дам возможность другим редактировать эту сущность заранее, зачем ждать еще 9 секунд
    $lock->release();
} else {
    // сорри чел, кто-то другой редагирует эту сущность
}


Часть с "ту-ту-ту" и "lock->release()" можно, например, вынести туда, где сохраняется эта сущность, что бы сбросить лок если юзер закончил редактировать сущность.

В общем концепт простой, применяй
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы