利用mysql自带函数GET_LOCK(str,timeout)
设法使用字符串str 给定的名字得到一个锁, 超时为timeout 秒。若成功得到锁,则返回 1,若操作超时则返回0 (例如,由于另一个客户端已提前封锁了这个名字 ),若发生错误则返回NULL (诸如缺乏记忆或线程mysqladmin kill 被断开 )。
假如你有一个用GET_LOCK()得到的锁,当你执行RELEASE_LOCK()或你的连接断开(正常或非正常)时,这个锁就会解除。
一个减少字符串锁名称冲突的方法是使用数据库特定的或应用程序特定的封锁名。例如, 使用db_name.str或 app_name.str 形式的封锁名。
SELECT GET_LOCK('20090529',30);
SELECT RELEASE_LOCK('20090529');
SELECT IS_FREE_LOCK('20090529');
设法使用字符串str 给定的名字得到一个锁, 超时为timeout 秒。若成功得到锁,则返回 1,若操作超时则返回0 (例如,由于另一个客户端已提前封锁了这个名字 ),若发生错误则返回NULL (诸如缺乏记忆或线程mysqladmin kill 被断开 )。
假如你有一个用GET_LOCK()得到的锁,当你执行RELEASE_LOCK()或你的连接断开(正常或非正常)时,这个锁就会解除。
一个减少字符串锁名称冲突的方法是使用数据库特定的或应用程序特定的封锁名。例如, 使用db_name.str或 app_name.str 形式的封锁名。
SELECT GET_LOCK('20090529',30);
SELECT RELEASE_LOCK('20090529');
SELECT IS_FREE_LOCK('20090529');