如何在向客户端发送响应后执行耗时的任务

时间:2011-07-27 09:03:26

标签: php multithreading image

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

PHP API acess multiple calls

答案 2 :(得分:1)

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

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

相关问题