【问题标题】:PHP run script concurrently?PHP同时运行脚本?
【发布时间】:2015-10-12 08:22:36
【问题描述】:

假设我有一个 PHP 脚本,它运行一个需要 10 分钟才能完成的漫长过程。

如果我通过浏览器执行脚本两次,两个请求将同时运行,或者第二个请求将保留在服务器队列中,直到第一个请求完成?

我知道可以同时处理请求的 pthreads 扩展,但我的服务器不支持。

【问题讨论】:

  • 只要您的机器能够应付(就像现代计算机一样),它们将同时运行。

标签: php


【解决方案1】:

这取决于您如何设置 apache / nginx / webserver,在默认设置中,它们将同时运行。

但是,我不建议您向外界公开一个长期运行的 php 脚本。你要求被 DDOS 攻击,而且这也不是一个好的用户体验。

如果你有一个你知道需要很长时间的脚本,那么有一个 api 端点,它将作业放置在像 beanstalkd / RabbitMQ 这样的消息传递队列中并返回一个processing / deferred response。然后,您可以拥有一个单独的队列工作者/许多队列工作者,它们将实时观察队列并处理作业。

http://kr.github.io/beanstalkd/https://www.rabbitmq.com/ 甚至http://redis.io/topics/pubsub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2017-06-23
    • 2016-11-14
    相关资源
    最近更新 更多