PHP通过插入mysql数据来实现多机互锁实例

yipeiwu_com6年前Mysql基础

本文实例讲述了PHP通过插入mysql数据来实现多机互锁的方法,分享给大家供大家参考。具体实现方法如下:

在执行流程之前可以加一般锁,shell枷锁函数如下,如果成功则会返回0,否则返回非0值:

复制代码 代码如下:
function get_lock()
{
    local dataId="${1}"
    local dataDate="${2}"

    local sql="insert intot_trans_lock
    (dataId, dataDate) values('${dataId}', '${dataDate}');"
    echo ${sql} | ${DB_PUBLIC}

    return $?
}

在执行失败或者结束的时候释放锁

复制代码 代码如下:
function free_lock()
{
    local dataId="${1}"
    local dataDate="${2}"
    local status="${3}"

    local sql="delete from t_trans_lock
    where dataId='${dataId}' and dataDate='${dataDate}';"
    echo ${sql} | ${DB_PUBLIC}
    if [ $? -ne 0 ]; then
        write_log ${dataId} "free lock failed"
    fi
    return ${status}
}

希望本文所述对大家的PHP+MySQL程序设计有所帮助。

相关文章

PHP中使用sleep造成mysql读取失败的案例和解决方法

近日,由于项目需求 需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作。 sleep等待的时间至少有一个小时以上 此前做过测试 用sleep函数去完成数小时后执行的操作是可行...

php mysql数据库操作分页类

复制代码 代码如下:<?php /*  *    mysql数据库 分页类  *  &nb...

php+mysql大量用户登录解决方案分析

本文实例分析了php+mysql大量用户登录解决方案。分享给大家供大家参考。具体分析如下: 百度、QQ、360等大公司都拥有上亿的用户量,不仅所有子网站都通过一个账号登录,而且还开放用户...

How do I change MySQL timezone?

However, there are ways for you to get results t...

MySQL连接数超过限制的解决方法

max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下...