【问题标题】:Allow multiple instances of a php script to run允许一个 php 脚本的多个实例运行
【发布时间】:2010-07-18 19:12:17
【问题描述】:

我正在尝试使用 ajax 向 php 脚本发出多个同时请求,但是,它似乎一次只执行 1 个实例,并且在前一个调用完成之前我无法连接以执行下一个调用。我该怎么做才能让它同时完成它们?我在 Windows 上使用 apache (xampp)。我也在我的 unix 服务器上对此进行了测试,同样的事情也在发生。

【问题讨论】:

  • 我非常怀疑您的服务器一次只允许一个连接。更有可能是您在 JavaScript 中做错了什么 - 您可以发布吗?

标签: php ajax simultaneous-calls


【解决方案1】:

理论上,没有什么可以阻止一个 PHP 脚本并行执行多次——否则,很多网站都会出现大问题 ;-)

因此,在您的情况下,可能存在一些阻止这种情况的锁定机制......


如果您的脚本正在使用会话,并且这些会话是基于文件的(这是默认设置),那么这些会话可能会导致此类问题:使用默认会话处理程序,不可能有多个文件访问相同的会话数据(即与给定用户对应的会话数据);这是为了防止一个脚本覆盖另一个脚本的数据,并且可能不应该被禁用。

那么,如果您的脚本正在使用会话:您可以停止使用会话吗?
如果没有,您应该在不需要它们时立即尝试关闭它们——以解锁用于存储它们的文件。

这是session_write_close手册页中的一段引述:

会话数据通常存储在 您的脚本在没有 需要调用 session_write_close(), 但由于 会话数据被锁定到 防止并发写入只有一个 脚本可以在任何时间对会话进行操作 时间
使用框架集时 与会议一起,您将 体验加载的帧 一个由于这种锁定。
你可以 减少加载所有文件所需的时间 尽快结束会话 作为对会话变量的所有更改 完成了。

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 2021-05-04
    相关资源
    最近更新 更多