有没有可能让一个PHP脚本的单个示例运行一个Windows服务器,不管有多少请求指向这个脚本,一次只能启动和运行脚本的一个示例?脚本执行完毕后,它将死亡,只有在收到新请求后才能启动。不需要将请求排队,因为运行脚本产生的结果存储在用户的accounts,这样即使用户的单个请求失败,用户也可以访问他们的帐户并查看结果。但是,如果同一进程的多个示例正在运行,那么它们将竞争相同的数据库和I/O资源。因此,为了避免数据库锁定和资源独占句柄,只需脚本的一个示例就足够了。但是,在连续循环中运行脚本会消耗太多的服务器资源,因此脚本仅每两小时运行一次,或者在用户特别请求时运行一次。
2条答案
按热度按时间kkih6yb81#
最简单和可移植的事情是在一些预定义的文件上使用文件锁。
例如:
p8h8hvxi2#
下面是一个使用提供咨询锁的数据库的解决方案,尽管在数据库中存储令牌也可以完成类似的工作。