【问题标题】:Mutex ( Lock File ) on a PHP filePHP文件上的互斥锁(锁定文件)
【发布时间】:2015-04-14 22:22:29
【问题描述】:

嗨,伙计们,我搜索了很多,但我在这个上有库存

我有一个 Mutex 类的女巫,基本上是在使用羊群,它会很好地锁定一个文件,但我的脚本运行的用户数超过 200 〜所以因此我的服务器硬盘驱动器将始终工作很多,这非常昂贵对于我的工作,所以我需要一个非常简单的解决方案来锁定像羊群这样的文件,但不接触硬盘。

我测试了 PECL 扩展(我不知道这也能解决我的问题) 但它真的很难配置和使用。

在此先感谢,对我的英语不好感到抱歉

【问题讨论】:

  • 您是在问如何在不对硬盘驱动器实际执行操作的情况下锁定硬盘驱动器上的文件?
  • @thatidiotguy 是的,完全正确 - 实际上我希望我的脚本一次只运行一次文件,并且在对该文件的操作完成后,文件解锁并再次再次操作
  • 如果你在 Linux 上,锁定/dev/null,它是一个伪文件。无需进行硬盘活动。顺便说一句,我很确定即使你锁定了一个真实的文件,硬盘上也不会有太多的活动——这样的事情应该由你的操作系统缓存。

标签: php mutex flock


【解决方案1】:

您可以在 Linux 和 Windows 下设置一个 ram 驱动器并将您的锁定文件存储在那里。我有一个类似的系统,因为它们非常小(空文件,所以只有文件元数据),即使是几兆字节也可以存储很多。这样做的另一个好处是系统重新启动将删除所有锁定文件,因此驱动器上不会留下任何挥之不去的文件。

在 Linux 上,您可以将以下内容添加到 /etc/fstab

tmpfs       /mnt/ramdisk tmpfs   nodev,nosuid,noexec,nodiratime,size=1024M   0 0

在 Windows 上,您可以下载 ImDisk Toolkit 之类的东西并用它创建一个 ramdisk。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多