【问题标题】:How can I do time consuming task after sending response to client向客户端发送响应后如何执行耗时的任务
【发布时间】:2011-07-27 09:03:25
【问题描述】:

场景是:当用户上传图片时,我们在服务器上调整图片大小,但不是等待这项工作完成,我希望它立即响应用户。如果有可用的线程,我会正确地使用线程来完成此任务,但据我所知,php 中没有线程,那么我该如何实现这个目标?感谢您的想法和建议。

【问题讨论】:

标签: php multithreading image


【解决方案1】:

fork the process (ugly and unreliable) 或使用 JobQueue,例如 Gearman

【讨论】:

    【解决方案2】:

    使用 PHP 脚本来完成所有这些处理,并在 shell 上使用 壳执行。 因此脚本将单独运行,您的代码将通过在 shell 中运行而不是主代码来绕过此操作。 在这里查看我的答案以获得类似的任务:

    PHP API acess multiple calls

    【讨论】:

      【解决方案3】:

      分叉是不可靠的,如果你的服务器由于某种原因崩溃,调整大小将永远不会发生。

      将作业放入队列中,并使用 cron 作业来执行此操作。创建作业队列的方法有很多种,您可以使用数据库编写自己的方法,也可以使用现有的解决方案。

      【讨论】:

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