代码之家  ›  专栏  ›  技术社区  ›  waiwai933

如何在PHP中创建非文件锁?

  •  0
  • waiwai933  · 技术社区  · 14 年前

    $_SESSION 变量,因为会话仅应用于一个用户。

    有没有办法把这个锁存储在变量中?我不希望创建和删除文件,以防服务器在脚本执行过程中死机。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Vladislav Rastrusny    14 年前

    MySQL有 GET_LOCK()

        2
  •  2
  •   MaxVT    14 年前

    既然你在处理数据库,你可以 lock the tables 你需要在脚本运行时。这将确保独占数据库访问。

        3
  •  0
  •   symcbean    14 年前

    变量是php当前实例的局部变量,因此这是比将其保留在会话中更糟糕的解决方案。

    我不希望创建和删除文件,以防服务器在脚本执行过程中死机。

    它可能仍然是放它的最好地方。如果修复脚本没有完成,那么您可能需要介入并手动确保数据的一致性—您还应该在操作成功开始和结束之间阻止对资源的所有其他访问。

    如果从命令提示符运行,则可以搜索进程列表:

    $cmd=$argv[0];
    $pid=getmypid();
    $find="ps -ef | grep $cmd | grep -v grep | grep -v $pid";
    $others=`$find`;
    

    C。