#在执行流程之前可以加一般锁,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}
}

本文介绍了一种使用Shell脚本实现的简单加锁和解锁机制。通过向数据库表插入记录来实现加锁,并在执行失败或结束后删除记录来释放锁。这种方式可以有效地避免并发执行流程之间的冲突。
86

被折叠的 条评论
为什么被折叠?



