Table of Contents
回复内容:
Home Backend Development PHP Tutorial PHP在什么情况下需要使用队列

PHP在什么情况下需要使用队列

Jun 06, 2016 pm 08:50 PM
php

PHP在什么情况下需要使用队列?自己不是很明白,希望有使用过的人能给点指导

回复内容:

PHP在什么情况下需要使用队列?自己不是很明白,希望有使用过的人能给点指导

队列的最主要用途是异步任务和通信两个方面。

异步的思路主要用来缓解瞬间压力、耗时操作、并行任务等。
1. 缓解瞬间压力:若系统每秒处理能力是100请求,而最高峰值可能达到每秒1000请求,若不采用队列,很有可能会出现服务不可用或者长时间等待。此时可以用队列将未能成功执行的请求放入队列,顺序执行,直到所有请求都被处理。
2. 耗时操作:如@loki 提到的缩略图生成。
3. 并行任务:如在发贴后分发通知所有的好友。

通信的思路主要用来解决在不同的独立模块或者系统之间相互同步数据、通知执行某些操作等。如@loki提到的发贴同步百度贴吧。

只要是耗时的操作,且业务需求允许的情况下,都可以放到异步队列中

比如
1.发微博,把微博推送到你的好友收件箱(假定采用的是推的方式),类似的还有feed
2.上传图片要生成不同尺寸的缩略图
3.发帖子的同时,利用百度知道api同步一份到百度知道
4.群发邮件
...

从php的运作机制上来讲,一般情况下是browser发一个req过来,服务器端编译一遍代码,然后执行。这样的话php的代码从被编译到执行完的时间要很短,因为撇开网络原因不说,用户至少要等待服务器的代码执行完了才能看到结果。

那除此之外,如果是异步的根据用户的请求做一些事情就不一样了,这个时候可以用到队列,来控制保证性能或者顺序。比方,用户需要做一个很费时的操作,你在他提交请求时只需要告诉他“这个请求服务器收到了,已经在执行了就可以了”,这样就不用用户等很长时间才得到结果。

综上,我的意思是,一般异步的时候,可以用到队列,平时的话除非为了保证异步执行的顺序,否则的话,我是没有这方面经验。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP Working with Database CakePHP Working with Database Sep 10, 2024 pm 05:25 PM

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles