利用文件锁进行文件写入和网站访问并发控制

并发下日志写入方案
$fp = fopen(APP_PATH."/Lib/Pay/pay_log/test_log.txt","a+");
if(flock($fp,LOCK_EX)) fwrite($fp,"1\n");
fclose($fp);        

//并发下调用接口示例
public function test(){
    $id = 1;
    //先打开一个文件(已经存在的文件可任意模式打开,不存在的文件不能用r和r+模式)
    $fp = fopen(APP_PATH."Lib/Pay/pay_log/test_log.txt","r");

    //打开后给北方网的文件加独占锁 用以阻塞执行代码期间 其它进程对这个文件的访问 让其它进程处于等待状态
    if(flock($fp,LOCK_EX)){
        //以下进行业务逻辑的处理
        $list = M("test")->where("id={$id}")->find();

        if($list && $list['status']<1){
                $add_data['test_id'] = $id;
                $add_data['time'] = time();
                $add_rus = M("test_log")->add($add_data);
                if($add_rus){
                    $save_data['id'] = $id;
                    $save_data['status'] = 1;
                    $up_rus = M('test')->save($save_data);
                }
        }
    }
    //关闭文件 释放独占锁 使其它进程继续访问
    fclose($fp);
}
时间: 2024-09-09 03:10:47

利用文件锁进行文件写入和网站访问并发控制的相关文章

利用IBM Java Toolbox for i实现针对数据库文件的记录级访问

对于从事 IBM i 平台的数据库应用开发而言,如何使用 IBM Java Toolbox for i http://www.aliyun.com/zixun/aggregation/11872.html">访问数据库文件是非常重要的技能.本文的目标是系统性介绍如何利用 IBM Java Toolbox for i 实现针对数据库文件的记录级访问(RLA 或 Record Level Access),并指出 JDBC 与 RLA 两种技术的区别. 从文件系统的角度,IBM i 提供了对 P

PHP文件读写操作之文件写入教程

在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.写入文件(文件操作函数:fwrite等) 3.关闭文件(文件操作函数:f

[转贴]利用伪造内核文件来绕过IceSword的检测

[转贴]利用伪造内核文件来绕过IceSword的检测   作者:倪茂志邮件:backspray008@gmail.com完成于:2005.12.20 文章分为八个部分:   一.为什么需要伪造内核  二.伪造内核文件  三.隐藏进程  四.隐藏内核模块  五.隐藏服务  六.隐藏注册表  七.隐藏文件  八.关于端口 另:建议先看看最后那些参考文章. 一.为什么需要伪造内核:   I

提高网站访问速度的两种简单方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 引言:我们平时在上网的时候,当你在百度中搜索一个内容,点击进入这个网页或者是你直接输入网址进入某个网站,需要等待十几秒钟的时间才能完全打开你所需要的页面,相信没有几个人愿意再继续浏览该站的其它页面了,因为人在等待的过程当中,心情是极为痛苦不舒服的,就像你约了某位美女(或帅哥),到了约定的时间,但她(他)确迟迟末到,那么这个心情大家应该都很好理

如何优化网站服务器提升网站访问速度

中介交易 SEO诊断 淘宝客 云主机 技术大厅 网站运营的任何时期,网站访问速度都是至关重要的部分,它是网站友好体验中最基本的一项,如果访问体验都令人不满意,那么后期所做的营销推广模式都有可能徒劳无功,因为网络中客户的选择成本很低,加上普遍客户的耐心都不高,页面访问超过6秒客户就会选择离开,这对于一些流量本来就不高的企业网站来说无疑是雪上加霜.网站访问速度既然如此重要,今天笔者也要跟大家分享几个关于提升速度体验的方法,虽然网上有很多类似的文章和观点,但是大多数都是网站内部去解析,今天笔者要从服务

利用批处理文件和 vbs 脚本实现网站视频自动录制_ASP基础

利用批处理文件和 vbs 脚本实现网站视频自动录制   现在电视台基本上都有了自己的门户网站,我们可以充分利用网络的优势来扩大本地电视台的影响.事实上,将本地电视台的每日的王牌节目挂在网站上的做法已经成为建立电视台网站的必要组成步骤之一了.但随之而来的问题是:每天定时需要的手工录制过程,将给管理者带来极大的不便.在 windows 定时任务的基础上,将批处理程序与脚本程序有机的集合,就可以有效地解决这一问题.     1 :建立压码任务  我们将使用一台带有视频采集卡的电脑来完成压码过程.虽然压

Android中没有插入SD情况下的文件写入和读取方法_Android

在Android开发时会遇到如下一种场合 希望应用下载到当前应用的根目录下,而非SD卡中 然后可以随时被该应用或其他应用访问这个文件,即具有被全局读取的权限 此时可以利用上下文的本地文件输出流进行文件写入 注意要为文件赋予可写可读的权限,否则当读取该文件时会报错 FileOutputStream fos = context.openFileOutput(saveFileName, Context.MODE_WORLD_WRITEABLE | Context.MODE_WORLD_READABLE

PHP文件读写操作之文件写入代码_php技巧

在PHP网站开发中,存储数据通常有两种方式,一种以文本文件方式存储,比如txt文件,一种是以数据库方式存储,比如Mysql,相对于数据库存储,文件存储并没有什么优势,但是文件读写操作在基本的PHP开发中还是时有使用,今天和大家分享如何利用PHP技术实现文件读写之文件写入操作教程,也算是对PHP文件读写操作的入门学习. 将数据写入文件的操作主要涉及三个步骤及部分文件操作函数如下: 1.打开文件(文件操作函数:fopen) 2.写入文件(文件操作函数:fwrite等) 3.关闭文件(文件操作函数:f

关于未来网站访问速度及后台查询速度的优化建议

1. 数据库设计:数据库内所有表结构均添加索引 调整原因: 近日数据库压力很大,经查有些大数据量表的查询速度很慢,导致数据库服务器CPU一直持续90%-100%,将这些表添加索引后,CPU很快变正常. 2. 将大数据表做分库.分区处理: 具体操作如下: 1).将大数据表与主数据库分离,单独新建一个数据库,然后将这些表做分区: 2).将数据插入到消息队列内,后台利用windows计划任务执行(5分钟执行一次)C#控制台程序将消息队列内的数据批量(消息队列内有50000条记录,一次性插入到数据表内)