【问题标题】:How to use Atomic Locks in Laravel?如何在 Laravel 中使用原子锁?
【发布时间】:2019-12-10 10:31:26
【问题描述】:

我有一些实体和用户。该实体只能由一个用户处理。 因此,如果用户对该实体进行了 GET 请求,它将在一段时间内“连接”到他。

我发现我可以对这个东西使用缓存,但是关于Atomic locks 的解释对我来说不是很清楚,有人可以帮忙举一个简单的例子来演示使用吗?

【问题讨论】:

    标签: laravel caching redis


    【解决方案1】:

    这是我最近实现的:

        try {
            // Trying to acquiring lock.
            // If lock is already acquired, waiting 5 seconds to try again.
            Cache::lock($key)->block(5);
        } catch (LockTimeoutException $e) {
            // Unable to acquire lock, can't cache the token
            return;
        }
    
        // Lock acquired, caching the token
        Cache::put($key, $token, 1);
    

    为了测试这一点,我们使用了 2 台设备作为同一用户登录并同时发出相同的请求。 希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2013-06-25
      • 2011-06-23
      • 2014-04-30
      • 1970-01-01
      • 2013-08-28
      相关资源
      最近更新 更多