我在Intranet站点上有一个页面,用于在服务器上启动长时间运行的PHP脚本。该页面有一个按钮来启动长时间运行的进程。 Button通过Ajax调用PHP脚本启动进程,PHP脚本快速向Ajax调用者返回200代码。 PHP启动的服务器进程将其进度转储到文件,页面根据Ajax循环报告进度。我的问题是我可以有多个用户连接到该页面,但只有一个应该能够一次启动长时间运行的PHP脚本,而其他每个用户只应该看到进度更新(即等待漫长的过程完成) 。 (一旦完成漫长的过程,它可以再次启动,但这在这里并不重要。)
我认为这个问题必须相当标准 - 一个条目,在运行服务器进程问题时阻止其他请求。我最初的想法是在第一次输入时在服务器上创建一个锁文件,并检查该文件是否存在于脚本的连续条目上。我会在服务器处理结束时清理锁文件。
这是这个问题的“标准模式”还是更好? PHP是否提供了可在此方案中使用的任何内置锁定功能?