首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保is_free_lock始终是独占的MySQL

确保is_free_lock始终是独占的MySQL
EN

Stack Overflow用户
提问于 2013-06-06 20:29:17
回答 1查看 549关注 0票数 0

我使用mysql get_lock来确保在同一行代码中运行的多个php脚本实例之间的互斥。我需要确保is_free_lock的两次同时执行不会产生0,在这种情况下,我将被脚本的两个实例锁定,然后执行该代码两次。请帮帮忙。

代码语言:javascript
复制
if($lock->isLockFree()) {
    // lock

    // release lock
} else {
    // trigger already locked error
}
EN

回答 1

Stack Overflow用户

发布于 2013-06-08 03:44:53

不要使用IS_FREE_LOCK(str)。您只需使用GET_LOCK(str,timeout)并检查它是否返回1(成功,获得锁定)或0(失败,获得锁定)。因此,您的代码应该如下所示:

代码语言:javascript
复制
// try to lock
if($lock->getLock()) {
    // locked

    // release lock
    $lock->releaseLock();
} else {
    // trigger already locked error
}

getLock()应该在哪些地方使用GET_LOCK(str,timeout)

顺便说一下,如果你使用php,你可能想试试我的ninja-mutex库的锁定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16962104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档