本文實例講述了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程序設計有所幫助。