# PHP 并发与任务队列:为什么不能什么都同步执行

举报
yd_220371319 发表于 2026/10/16 21:19:17 2026/10/16
【摘要】 PHP 并发与任务队列:为什么不能什么都同步执行假设用户上传视频后,服务器还要转码、生成缩略图、发通知。如果全部放在一个 HTTP 请求里,用户就得一直等。 异步任务更合理:HTTP 请求 ↓创建任务 ↓立即返回 ↓Worker 后台处理 队列Producer ↓Queue ↓WorkerPHP 程序把任务放进队列,Worker 再消费。 Worker长期运行的 Worker 大致:whi...

PHP 并发与任务队列:为什么不能什么都同步执行

假设用户上传视频后,服务器还要转码、生成缩略图、发通知。

如果全部放在一个 HTTP 请求里,用户就得一直等。

异步任务

更合理:

HTTP 请求
 ↓
创建任务
 ↓
立即返回
 ↓
Worker 后台处理

队列

Producer
 ↓
Queue
 ↓
Worker

PHP 程序把任务放进队列,Worker 再消费。

Worker

长期运行的 Worker 大致:

while (true) {
    $job = getJob();
    process($job);
}

生产环境需要使用 Supervisor、systemd 或容器编排等方式管理。

失败重试

可以:

失败
 ↓
重试
 ↓
超过次数
 ↓
死信队列

幂等

如果一个扣款任务执行两次,后果可能很严重。

所以任务设计需要考虑幂等性。

小结

异步的意义不是简单“让 PHP 更快”,而是把用户请求和耗时任务拆开。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。