相关疑难解决方法(0)

为什么 Cache::lock() 在 Laravel 7 中返回 false?

我的框架是 Laravel 7,缓存驱动程序是 Memcached。我想执行原子缓存获取/编辑/放置。为此我使用Cache::lock()但它似乎不起作用。返回$lock->get()false(见下文)。我该如何解决这个问题?

Fort 测试,我重新加载 Homestead,并仅运行下面的代码。并且锁定永远不会发生。是否有可能Cache::has()破坏锁定机制?

if (Cache::store('memcached')->has('post_' . $post_id)) {
    $lock = Cache::lock('post_' . $post_id, 10);
    Log::info('checkpoint 1'); // comes here

    if ($lock->get()) {
        Log::info('checkpoint 2'); // but not here.
        $post_data = Cache::store('memcached')->get('post_' . $post_id);
        ... // updating $post_data..
        Cache::put('post_' . $post_id, $post_data, 5 * 60);
        $lock->release();
    }
} else {
        Cache::store('memcached')->put('post_' . $post_id, $initial, 5 * 60);
}
Run Code Online (Sandbox Code Playgroud)

laravel laravel-6 laravel-7

5
推荐指数
1
解决办法
2392
查看次数

标签 统计

laravel ×1

laravel-6 ×1

laravel-7 ×1