我是靠谱客的博主 年轻糖豆,这篇文章主要介绍php文件锁(互斥锁),现在分享给大家,希望可以做个参考。

<?php

    namespace AppConsoleLogic;

    use AppCommonCommon;

    class test
    {
        private $fileLock = 'WarehouseCreateOrder.lock';//文件锁

        public function __construct()
        {
        }

        //执行前
        public function before()
        {
            $dir = storage_path();
            $flagFile = $dir . DIRECTORY_SEPARATOR . $this->fileLock;
            if (file_exists($flagFile)) {
                //如果锁文件存在时间过长删除锁文件
                if (time() - filemtime($flagFile) > 7200) {
                    @unlink($flagFile);
                }
            }
            //如果锁文件存在,程序已经运行.
            if (file_exists($flagFile)) {
                echo "Is already running,please unlock! n";
                exit(0);
            }
            //加锁,创建锁文件
            touch($flagFile);
            if (preg_match('/linux/i', PHP_OS) || preg_match('/Unix/i', PHP_OS)) {
                chmod($flagFile, 0777);
            }
        }

        public function end()
        {
            $dir = storage_path();
            $flagFile = $dir . DIRECTORY_SEPARATOR . $this->fileLock;
            //解锁,删除锁文件
            unlink($flagFile);
        }

        //用户信息同步的入口
        public function run()
        {
            try {
                $this->before();
                //codeing
                 

            } catch (Exception $e) {
               
            } catch (Throwable $e) {
              
            } finally{
                $this->end();
            }
        }
       
    }

 

最后

以上就是年轻糖豆最近收集整理的关于php文件锁(互斥锁)的全部内容,更多相关php文件锁(互斥锁)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(120)

评论列表共有 0 条评论

立即
投稿
返回
顶部