停止多个会话同时访问同一文件
是否可以在 GD 库访问文件时锁定文件以阻止其打开?
我希望实现的目标类似于数据库“可串行”隔离级别...我想确保一次只有一个会话/用户可以访问图像以阻止“脏读”。
我的应用程序允许用户将选择的图像添加到更大的图像中。
例如
- 大图是空的
- Raj & Janet 上传他们的图像
- Raj 的会话打开大图像。
- 1 毫秒后 Janet 的会话 打开大图。
- Raj 的会议添加了他的图像和 保存大图像
- Janet 会话 1 毫秒后 添加他的图像并保存其版本 的大图像。
- 结果Raj的形象就没有出现在 最终图像为珍妮特版本 覆盖它。
我希望这已经足够清楚了。
Is it possible to lock a file to stop it being opened while GD library is accessing it?
What I am looking to achieve is similar to a database 'serialzable' level of isolation... I want to ensure that only one session/user can access an image at a time to stop a 'dirty read'.
My application allows users to add an image of choice to a bigger image.
for example
- the big image is empty
- Raj & Janet upload their images
- Raj's session opens the big image.
- 1 ms later Janet's session
opens the big image. - Raj's session add's his image and
saves the big image - 1 ms later Janet's session
adds his image and saves its version
of the big image. - As a result Raj's image is not in
the final image as Janet's version
overwrote it.
I hope that makes it clear enough.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看 flock。您可以锁定正在使用的文件,也可以在文件系统中的其他位置创建一个“锁定文件”,供所有脚本检查。
Check out flock. You can either lock the file you're working with, or create a "lock file" somewhere else in the filesystem which all your scripts check for.