当前位置:首页 > 日记 > 正文

操作类的使用memache作为PHP进程锁定共享

操作类的使用memache作为PHP进程锁定共享
< PHP

/ /使用memache作为锁定过程

类lock_processlock {
密钥前缀
保护slockkeypre美元;
重试间隔
保护ilockretryinterval美元;
/ /重试次数
保护ilockretrycount美元;
过期时间锁定
保护ilockcachetimeout美元;
在回调函数到期日后锁定
保护onlocktimeoutfunc美元;
/ / memache例子
保护omemcache美元;
Memcache / /存储失败后的重试次数
保护imemcacheretrycount美元;

公共功能__construct($ onlocktimeoutfunc = null){
alockconfig美元= get_config('锁定');
美元-> slockkeypre =自我::lock_key_pre;
美元-> ilockretryinterval =自我::lock_retry_interval;
美元-> ilockretrycount =自我::lock_retry_count;
美元-> ilockcachetimeout =自我::lock_cache_timeout;
美元-> imemcacheretrycount =自我::lock_cache_timeout;
如果(!onlocktimeoutfunc美元){
如果锁不成功,则调用回调函数,如果没有回调函数与
onlocktimeoutfunc美元= 'onlocktimeout;
}
美元-> onlocktimeoutfunc = $ onlocktimeoutfunc;
}
连接其他服务器
* /
公共函数连接(){
如果(!isset(美元-> omemcache)){
美元-> omemcache =新(后面);
美元omemcache ->连接->('127.0.0.1 ',11211);
}
美元-> omemcache返回;
}
*
添加键memcache
* /
公共addmemcache(SKEY美元,美元价值,美元itimeout){

为($我= 0;美元iimemcacheretrycount){
该=美元美元-> omemcache ->添加(SKEY美元,美元价值,美元itimeout);
如果($纤维){
返回true;
}
如果锁没有成功,那么从新锁中休眠
usleep(美元-> ilockretryinterval×1000);

}
返回false;

}
*

* /
公共功能锁($ slockid){

omemcache美元=美元->连接();
美元美元-> slockkeypre SKEY =。slockid美元;

如果没有成功,可以多次尝试

为($我= 0;我ilockretrycount美元美元;i++){

在这里,可以轻松设置值的值。
如果(美元-> addmemcache($ SKEY,1,美元-> ilockcachetimeout)){
返回true;
}

如果锁没有成功,那么从新锁中休眠
usleep(美元-> ilockretryinterval×1000);

}

如果不成功,则锁定失败,调用回调函数。也就是说,在处理完操作失败后
如果(is_callable(美元-> onlocktimeoutfunc)){
调用函数
call_user_func(美元-> onlocktimeoutfunc);
}

}
*
解锁操作
* /
公共功能解锁($ slockid){

omemcache美元=美元->连接();
美元美元-> slockkeypre SKEY =。slockid美元;
删除键
返回omemcache美元-> ->删除($ SKEY);

}
如果锁不成功,则执行以下操作
* /
公共功能onlocktimeout(){

回声(锁定超时);
}

}
应用程序

$点=新lock_processlock();
lockresource美元=测试;
锁定
$点->锁($ lockresource);
解锁
$点->解锁($ lockresource);

相关文章

Word2010添加页码Word2010教程

Word2010添加页码Word2010教程

教程,页码,电脑软件,以下是添加页码的格式,你与你分享。我希望你能帮助你。 如果您希望每页显示页面,并且不希望包含任何其他信息(例如,文档或文件位置的标题),您可以在库中快速添加一个页码,您可以创建一个定制的定制页面或页面,其中包含页面总数(…

浪漫唯美情人签名

浪漫唯美情人签名

唯美,情人,浪漫,电脑软件,我不爱太阳,沙滩不爱桔子,我爱我的少年。 我不喜欢阳光灿烂的日子,大海不爱西瓜,我爱我的女孩。 我的沉默成了别人眼中的城府。 我的诚实是别人口中的天真。 牵着我的手,闭上你的眼睛,你不会迷路的。 你握住你的手,即使你…

js面向对象的公共、私有、静态属性

js面向对象的公共、私有、静态属性

面向对象的,方法,静态属性,电脑软件,js,现在,Javascript很流行,网站开发人员,Javascript是必要的,以掌上语言为依据,但随着jQuery框架的普及和使用,很多人对原生javascript缺乏深入的了解,使用函数编辑风格进行闭包,原型总是模糊的。面向对象的js用的很差,要了解js对象…

教你如何用ps修改一英寸的背景颜色

教你如何用ps修改一英寸的背景颜色

背景颜色,修改,教你,如何用,电脑软件,在生活中,在文件中,往往要采取一英寸,但有些要求,红色底部,一些蓝色的底部,如何做到这一点今天,我们介绍如何使用ps来修改背景颜色的一英寸。这很简单。让我们一起学习。 现在图片的背景颜色有相关的要求,为钱…

如何制作微通道地图PS微通道地图教

如何制作微通道地图PS微通道地图教

通道,教程,地图,电脑软件,PS,一定看过微信地图,可能好奇这是怎么做的,第一件事就是用电脑,你的电脑先安装PS专业的图形软件。 在使用微信的过程中大家一定看到微信地图,可能会好奇这是怎么做的。在这里,小编与你分享一个关于如何让微信地图,希望…

QQ签名一个悲伤的词

QQ签名一个悲伤的词

悲伤,电脑软件,QQ,这个伤心字QQ签名是一个专门为大家安排的小编辑,希望对你有所帮助! 首先,如果你问我有多少次穿越我的心,我会说一次,因为你从来没有真正离开过… 如果你离开我,不要安慰我,要知道每一针都会遭受穿刺的痛苦。 三。当一个人很难找…

PS图象处理软件创造了金花肖像海报

PS图象处理软件创造了金花肖像海报

肖像,图象,处理软件,海报,创造了,本教程使用的材料很少,但作者非常单薄,包括背景、肖像、装饰等。然后用过滤器和颜色工具来提高效果。 本教程使用的材料很少,但作者非常单薄,包括背景、肖像、装饰等。然后通过过滤器和颜色调整工具来提高效果…

为什么人们知道这个地区与我的地区

为什么人们知道这个地区与我的地区

常见问题,地区,电脑软件,QQ,在QQ空间中,你可能认识的人被分成:你可能认识的人;你可能感兴趣的人; 首先,在您可能知道的人中,与显示的区域没有连接。您所知道的人是;显示的逻辑是基于: 1,QQ够好的朋友; 2、QQ朋友多玩空间(要有空间头优先); 3,目前的建…

如何制作动态入门教程

如何制作动态入门教程

动态,入门教程,电脑软件,在互联网上,我们可以看到很多动态图片千wonderfuhundredcondition,似乎比静态图片更真实的生活,有一个如何使充满活力,所以我们可以从多个方法,使动态图像的优势,首先,我们可以利用互联网,在搜索引擎上搜索制作动态图片网站…

PS图象处理软件栩栩如生的晶莹剔透

PS图象处理软件栩栩如生的晶莹剔透

冰挂,栩栩如生,晶莹剔透,图象,处理软件,冰是在漫长的冬季,很多朋友真的,today Xiaobian明确冷悬锥,制冰方法非常简单实用,喜欢的朋友可以一起 方法进行冰很简单实用。过程:先找到一个令人满意的背景材料,任何材料都可以,只是更接近冬季新材料的主…

插图过滤器效果的一个例子

插图过滤器效果的一个例子

过滤器,插图,例子,效果,电脑软件,本教程为您提供了一个示例,说明如何使用插图过滤器。非常适合初学者。 本教程主要是讲解插画滤镜效果给你带来的效果,很不错,大家一起看看吧! 以上是一个说明滤镜效果的例子,希望大家喜欢它!…

Javascript错误解决parseInt函数转换在An

Javascript错误解决parseInt函数转换在An

转换,错误解决,函数,电脑软件,WebView,今天,一个问题被浏览器上的页面所困扰(不管是手机还是PC)。它运行在Web视图,这里面有两个问题需要计算和总是错的。所以值显示警报,结果比在浏览器的结果差了不少,这是积极的和消极的。仔细对比发现,部分被删…