婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel中使用Queue的最基本操作教程

Laravel中使用Queue的最基本操作教程

熱門標簽:長沙crm外呼系統業務 400電話申請方法收費 專業電話機器人批發商 江蘇外呼電銷機器人報價 電話機器人危險嗎 南寧高頻外呼回撥系統哪家好 離石地圖標注 深圳外呼系統收費 400電話辦理福州市

前言

laravel中的隊列服務跟其他隊列服務也沒有什么不同,都是最符合人類思維的最簡單最普遍的流程:有一個地方存放隊列信息,一個PHP進程在運行時將任務寫入,另外一個PHP守護進程輪詢隊列信息,將達到執行要求的任務執行并刪除。由于PHP是url驅動的同步語言,本身是阻塞的,所以laravel提供一個守護進程工具來查詢并執行隊列信息也就不足為奇了。

這兩天初次接觸 Laravel 的隊列,也是搞了好一會。。。一番折騰下來還是感慨對 Laravel 不得其門,文檔寫的相對簡單和概括,看源碼又有些力不從心(不過看源碼慢慢調試驗證還是最可靠的)。

下面是我的一個簡單 Demo,僅僅使用了隊列的最基本操作,偏高級的操作需要再去好好時間一番 :)

和我一樣入門 Laravel 的隊列有些困難的同學可以交流一下。

配置

添加 Redis 包

在 composer.json 中 require 部分加入 "predis/predis": "~1.0",,然后 composer up 更新一下即可。

database.php

在 database.php 配置文件中對 redis 數據庫部分進行配置,默認有一個 default 連接,就用這個好了:)

根據這個默認連接中需要的配置項,編輯 .env 配置文件,將其中的 REDIS_HOST、REDIS_PASSWORD、REDIS_PORT 填寫成自己服務器中 Redis 的相應值。

queue.php

首先需要去 .env 中配置 QUEUE_DRIVER,因為現在打算用 Redis,所以配置成 redis。

接著配置 queue.php 里 connections 部分的 redis 連接,其中 connection 對應的值就是 database.php 中 redis 的那個 default 連接。

任務類

接下來就是寫實際的操作類了,Laravel 提供了 artisan 命令簡化創建任務類:

php artisan make:job Demo

在 app 目錄下會生成 Jobs 目錄,里面已經有了 Demo.php 任務類。

Lumen 可沒有這個 artisan 命令,不過也很方便,默認會有一個 ExampleJob.php 已經寫好了,拷貝一份改個名字即可。
先寫個簡單的日志輸出測試一下好了,在 handle 方法中:

Log::info('Hello, queue');

發放任務

現在寫個入口函數,推送任務到隊列中。使用輔助函數 dispatch():

Laravel 中使用如下方式:

Demo::dispatch();

Lumen 中使用如下方式:

dispatch(new Demo);

開啟隊列

順利的話,這是最后一步了。命令行中執行:

php artisan queue:listen --queue=default

它會監聽隊列,并輸出簡單的執行情況,比如:

[2017-11-07 02:12:47] Processing: App\Jobs\Demo
[2017-11-07 02:12:47] Processed: App\Jobs\Demo

沒啥問題后就可以讓這個隊列腳本執行在后臺:

php artisan queue:work --daemon --quiet --queue=default 1>> /dev/null 2>1

進階一下 :)

推送到隊列中時,一般會有傳參的需求,那這里怎么傳呢?

參數傳遞

傳入

在入口函數中傳入參數方式如下:

Laravel 中使用如下方式:

$param = 'Stephen';
Demo::dispatch($param);

Lumen 中使用如下方式:

$param = 'Stephen';
dispatch(new Demo($param));

接收

在任務類中接收參數方式如下:

protected $param;
/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct($param)
{
  $this->param = $param;
}
/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
  Log::info('Hello, ' . $this->param);
}

初次嘗試到此為止,還有許多高級用法,比如延遲分發、錯誤處理、優先級、失敗處理等,后續會繼續寫 :)

多隊列

這是一個必然需要考慮到的問題,我不可能將所有任務都放在一個叫 default 的隊列中,這樣不容易對隊列進行管理。

要指定不同的隊列,非常簡單,在 dispatch() 后緊接著跟上 onQueue() 方法即可:

Demo::dispatch()->onQueue('emails');

不對啊,我好像沒有定義過這個叫 emails 的 queue。嗯,自然需要做出一點改動,在 queue.php 配置文件中的 redis 配置 queue 從 default 改為 {default},這樣做的效果就是隊列的名稱可以從運行的時候動態拿到,而不是寫死的。

如果使用 Lumen 框架,那么直接這么寫會報錯:Call to a member function onQueue() on string。

原因在于 Lumen 的 Job 基類中并沒有使用 Illuminate\Foundation\Bus\Dispatchable 這個 trait,而是直接使用 Illuminate\Bus\Queueable 中的 onQueue() 方法。

那么現在就很清楚了,我們的 Job 類使用了 Illuminate\Bus\Queueable 這個 trait,所以需要在 Job 類上調用這個 onQueue() 方法。

$job = new XXXJob();
dispatch($job->onQueue('queue-name'));

當我們在開啟隊列的時候:

php artisan queue:work --queue=emails

這里指定的隊列名 emails 和 dispatch 時指定的隊列名保持一致即可。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考鏈接

Laravel 官方文檔

您可能感興趣的文章:
  • PHP的Laravel框架中使用消息隊列queue及異步隊列的方法
  • Laravel 4.2 中隊列服務(queue)使用感受

標簽:濱州 曲靖 白酒營銷 南昌 太原 興安盟 株洲 南京

巨人網絡通訊聲明:本文標題《Laravel中使用Queue的最基本操作教程》,本文關鍵詞  Laravel,中,使用,Queue,的,最,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel中使用Queue的最基本操作教程》相關的同類信息!
  • 本頁收集關于Laravel中使用Queue的最基本操作教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区欧美精品| 一本一道综合狠狠老| 欧美天堂亚洲电影院在线播放| 亚洲美女少妇撒尿| 在线观看91av| 亚洲一区二区欧美| 精品国产乱子伦一区| 国产成a人亚洲精品| 亚洲午夜久久久| 精品乱人伦一区二区三区| 激情综合网最新| 欧美精品一区二区三区久久久| 97久久精品人人爽人人爽蜜臀| 丝袜美腿一区二区三区| 国产亚洲精品aa| 久久99精品国产.久久久久 | 国产99久久久国产精品| 久久久精品2019中文字幕之3| 色综合咪咪久久| 久99久精品视频免费观看| 久久久91精品国产一区二区三区| 日韩欧美国产一二三区| 91福利区一区二区三区| 国产成人午夜精品影院观看视频 | 69p69国产精品| 精品一区二区三区免费毛片爱| 91精品欧美福利在线观看| 成人v精品蜜桃久久一区| 日本亚洲欧美天堂免费| 亚洲男同性恋视频| 国产精品麻豆视频| 国产亚洲综合色| 在线免费观看日本欧美| 国产精品69久久久久水密桃| 日韩你懂的在线播放| 欧美三级中文字| av男人天堂一区| 美女视频网站黄色亚洲| 国产精品国产自产拍高清av | 怡红院av一区二区三区| 国产精品免费观看视频| 亚洲另类春色校园小说| 国产精品的网站| 69成人精品免费视频| 91超碰这里只有精品国产| 成人综合日日夜夜| 高清av一区二区| 国产成人a级片| 亚洲在线观看免费视频| 亚洲大尺度视频在线观看| 亚洲午夜免费视频| 亚洲大片免费看| 国产精品不卡在线| 精品国产精品网麻豆系列| 欧美成人一级视频| 久久亚洲精华国产精华液| 久久色在线观看| 国产精品福利一区| 久久综合久久综合九色| 欧美精品1区2区3区| 日韩免费高清av| 亚洲精品一区二区三区精华液 | 天堂蜜桃一区二区三区| 一区二区欧美国产| 国产视频一区在线播放| 亚洲自拍欧美精品| 日韩高清欧美激情| 激情小说亚洲一区| 精品视频一区 二区 三区| 日韩一区二区三区在线| 久久久久久**毛片大全| 亚洲色图制服诱惑| 高清视频一区二区| 色欧美88888久久久久久影院| 欧美日韩国产一二三| 日韩女优视频免费观看| 亚洲高清三级视频| 国产大片一区二区| 欧美色网站导航| 91麻豆自制传媒国产之光| 久久久国产午夜精品| 亚洲免费在线电影| 国产在线精品一区二区| 一本大道久久a久久综合婷婷| 国产欧美中文在线| 五月婷婷久久综合| 不卡高清视频专区| 91福利在线导航| 亚洲欧美经典视频| 国产一区二区三区久久久 | 亚洲国产美女搞黄色| 美腿丝袜亚洲色图| 色中色一区二区| 亚洲欧美日韩成人高清在线一区| 看电影不卡的网站| 欧美性受极品xxxx喷水| 日韩欧美色综合| 国产一区视频导航| 欧美精品vⅰdeose4hd| 国产精品国产三级国产普通话三级| aaa国产一区| 亚洲欧美日韩国产另类专区| 免费的国产精品| 日本久久电影网| 欧美色中文字幕| 日韩精品一级二级| 在线视频中文字幕一区二区| 国产精品美女视频| 国产精品亚洲一区二区三区在线 | 国产一区二区三区四| 欧美日韩免费高清一区色橹橹 | 久久99国产精品免费| 色婷婷av一区二区三区gif | 国产伦精品一区二区三区视频青涩 | 欧美成人激情免费网| 亚洲另类一区二区| 91视频在线看| 国产精品欧美一区喷水| 国产福利一区在线| 久久久精品tv| 国产成人亚洲综合a∨婷婷图片| 国产精品美女久久福利网站| 精品写真视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一级一区二区| 国产成人一区在线| 亚洲一线二线三线视频| 日韩欧美黄色影院| 不卡视频在线观看| 图片区小说区区亚洲影院| 久久久久久久久久美女| 91久久精品国产91性色tv| 激情综合色播激情啊| 中文字幕视频一区| 欧美一级欧美一级在线播放| 99久久综合狠狠综合久久| 另类小说一区二区三区| 亚洲综合清纯丝袜自拍| 国产日韩视频一区二区三区| 欧美手机在线视频| 成人午夜伦理影院| 麻豆成人av在线| 亚洲大片精品永久免费| 亚洲国产精品av| 欧美一区二区视频在线观看| 99re热视频精品| 国产成人在线观看| 精品综合免费视频观看| 午夜一区二区三区在线观看| 中文字幕国产一区| 精品国产a毛片| 欧美一区二区性放荡片| 欧美四级电影网| aaa欧美大片| 国产69精品久久久久777| 紧缚奴在线一区二区三区| 亚洲国产毛片aaaaa无费看 | 亚洲一区二区综合| 国产清纯白嫩初高生在线观看91 | 久久亚洲综合色一区二区三区 | 中文字幕综合网| 久久久精品天堂| 精品免费国产一区二区三区四区| 欧美视频一区二| 91久久久免费一区二区| 99re这里只有精品视频首页| aaa亚洲精品| a在线欧美一区| 成人av第一页| 成人av在线影院| 国产不卡视频在线观看| 国产成人福利片| 成人午夜激情影院| 成人动漫精品一区二区| 91丨九色丨黑人外教| 91麻豆swag| 欧美色综合影院| 欧美日韩一区二区三区免费看| 欧美日韩精品欧美日韩精品一综合| 欧美亚洲一区二区在线观看| 欧美日韩高清影院| 欧美一级精品大片| 91麻豆精品久久久久蜜臀| 制服丝袜av成人在线看| 在线电影欧美成精品| 精品999在线播放| 国产日韩精品久久久| 中文字幕一区视频| 夜夜揉揉日日人人青青一国产精品| 亚洲一区二区三区四区五区中文| 亚洲第一久久影院| 久久99精品久久只有精品| 国产成人精品www牛牛影视| 91蝌蚪国产九色| 91精品国产综合久久福利| 久久久久久一二三区| 中文字幕一区二区三区蜜月 | 欧美成人a在线| 国产精品妹子av| 午夜激情一区二区三区|