老雷php教程之消息隊列
老雷PHP教程之消息隊列
一、什么是消息隊列?
? ? 隊列就跟排隊一樣,先排的人先辦事。先進先出,在程序上是默認左進右出
二、隊列的作用
? ? 在處理一些比較耗時的任務并且不需要實時處理時,我們會將任務安排到隊列中然后異步執(zhí)行。?
? ? 比如發(fā)送郵件通知、發(fā)送訂單通知、圖片處理、視頻處理等。
三、隊列的實現方式
? ? 只要理解隊列的實現方式,我們可以用多種方式去實現隊列。但是對于隊列任務的可靠性,我們需要使用一些更專業(yè)的消息隊列。
? ? 比如:RocketMQ,Kafka等。
? ? 我們如果需求簡單,我們可以使用文件存儲、mysql、redis都可以實現。
? ??
四、隊列原理
//先進先出class queue{public $list=[];//左添加public function lpush($v){array_unshift($this->list,$v);}//右取出public function rpop(){$val=array_pop($this->list);return $val;}//右插隊public function rpush($v){$this->list[]=$v;}//獲取隊列public function getList(){return $this->list;}}$que=new queue();$que->lpush("第一個");$que->lpush("第二個");$que->lpush("第三個");print_r($que->list);echo "
";echo "獲取第一個:".$que->rpop();echo "
";$que->rpush("插隊的人");echo "獲取插隊:".$que->rpop();echo "
";echo $que->rpop();echo "
";echo $que->rpop();
課后作業(yè):
? ? 使用mysql實現隊列
評論
圖片
表情
