本文實例講述了PHP通過插入mysql數(shù)據(jù)來實現(xiàn)多機(jī)互鎖的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:
在執(zhí)行流程之前可以加一般鎖,shell枷鎖函數(shù)如下,如果成功則會返回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 $?
}
在執(zhí)行失敗或者結(jié)束的時候釋放鎖
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程序設(shè)計有所幫助。