laravel mysql 隊列_Laravel 隊列使用

Laravel 隊列使用

1.修改根目錄

.env文件的 **QUEUE_CONNECTION **字段配置為 database

Laravel可配置多種隊列驅動,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具體參見app/config/queue.php)

其中sync為同步,database為使用數據庫,后面三種為第三方隊列服務,最后一種為不使用隊列。

f45d55fee18487afde9e51fc0ce92b8a.png

該位置具體是什么請查看app/queue

a00f9fd1805c60eb456f7b92f79d3aac.png

2.創建數據庫隊列表(database方式)

為了使用 database 隊列驅動,你需要一張數據表來存儲任務。

php artisan queue:table

生產一張隊列表

php artisan migrate

mysql版本5.7.7以下可能會報如下錯誤

b0c750546f42950cd4ae9e7b6ef36bd4.png

解決方案

打開app/Providers/AppServiceProvider文件,在boot方法中加入如下代碼,刪除數據庫中已經生成的遷移數據表,再次運行就可以成功。

一定要刪除已經生成的job數據表,否者匯報如下錯誤

3187b2c7d947a9023a9d9fa999c186ff.png

\Schema::defaultStringLength(191); //add fixed sql

數據庫最終效果

4c691dbac3e3241fb5715bb6542652b9.png

3.生成任務類

在你的應用程序中,隊列的任務類都默認放在 app/Jobs 目錄下。

如果這個目錄不存在,那當你運行 make:job Artisan 命令時目錄就會被自動創建。

你可以用以下的 Artisan 命令來生成一個新的隊列任務:

php artisan make:job SetLog

500d03d7af8959d026c6227822413738.png

4.在隊列類里面的handle方法中寫上業務邏輯(比如發送網絡請求,發送郵件等等,這里簡單寫個日志代替)

protected $message;

/**

* Create a new job instance.

*

* @return void

*/

public function __construct($message)

{

$this->message = $message;

}

/**

* Execute the job.

*

* @return void

*/

public function handle()

{

\Log::info($this->message);

}

5.在控制器中加入一個測試方法,直接調用隊列類的 dispatch方法,類似生產了一個任務

public function index(Request $request){

SetLog::dispatch(date('Y-m-d H:i:s') . "進入了系統");

}

這時,由于隊列還沒開啟,數據庫的隊列表中會有一個任務,等待隊列啟動后執行

7fb783aabc5898df21314a3d360ee44d.png

6.執行命令開啟隊列

php artisan queue:work

這時,隊列表中的任務執行后就會自動刪除了,類似消費了任務

f54769812a6279036c399e570b98798e.png

97cc29d7f4da9530153c97e56f226b04.png

bf3482cf91a2c2c09fa8a238660a0b10.png

以上是拋轉引玉的一個簡單例子,具體細節可以查看laravel的隊列文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376140.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高手速成android開源項目【項目篇】

主要介紹那些Android還不錯的完整項目,目前包含的項目主要依據是項目有意思或項目分層規范比較好。Linux項目地址:https://github.com/torvalds/linuxAndroid項目地址:https://android.googlesource.com/或https://github.com/android以上兩個…

Swift基礎語法: 30 - Swift的基類, 子類, 重寫, 重寫方法, 重寫屬性, 防止重寫

前面我們講了有關于腳本語法的基本認識以及使用, 現在讓我們來看看Swift的其他東西: 1.基類 所謂的基類, 就是OC中的父類, 不繼承任何類, 就叫做基類, 讓我們來看看例子: class Vehicle {var currentSpeed 0.0var description: String {return "traveling at \(currentSp…

機器學習1k近鄰

自己一直學習計算機視覺方面的東西,現在想學習一下數據挖掘跟搜索引擎,自己基礎也有點薄弱,看朱明的那本數據挖掘,只能片面的了解這個數據挖掘。不過最近有一本書 機器學習實戰,于是乎通過實戰的形式了解一下基本的算法…

mysql服務器的線程數查看方法_MySQL服務器線程數的查看方法詳解

本文實例講述了MySQL服務器線程數的查看方法。,具體如下:mysql重啟命令:/etc/init.d/mysql restartMySQL服務器的線程數需要在一個合理的范圍之內,這樣才能保證MySQL服務器健康平穩地運行。Threads_created表示創建過的線程數&…

[No000003]現代版三十六計,計計教你如何做人

《現代版三十六計,計計教你如何做人》 …………………………………………………………………………………… 第1計施恩計 在人際交往中,見到給人幫忙的機會,要立馬撲上去,像一只饑餓的松鼠撲向地球上的最后一粒松籽. 因為人情就是財富,人際關系一個最基本的目的就是結人情,有人…

mysql 重置root密碼 遠程訪問_重置mysql的root密碼以及設置mysql遠程登陸權限

root密碼忘記,重置mysql的root密碼:t一、修改mysql的配置文件my.cnf1.在[mysqld]的段中加上一句:skip-grant-tables[mysqld]datadir/var/lib/mysqlsocket/var/lib/mysql/mysql.sockskip-name-resolveskip-grant-tables保存并且退出vi。(或執行…

C#中枚舉類型和int類型的轉化

先定義一個枚舉類型 public enum PropertyType { 小學 0, 初中, 高中&#xff0c;大學 }; int ->enum int d2; PropertyType a(PropertyType)d; int <- enum PropertyType d PropertyType.小學; int a Convert.ToInt32(d); Enum類有關的方法 E…

vagrant使用centos的環境安裝..

vagrant這貨挺好用的..簡要就是, 下好virtualbox, vagrant, 然后下個你需要的box. 然后vagrant box add boxname boxpath就行. 然后在合適的地方vagrant init就能創建好虛擬機, 然后vagrant up是開啟, vagrant ssh是通過ssh連接過去, 可以裝一個zsh , 配置oh my zsh啥的, 然后安…

linux mysql odbc驅動安裝_MySQL ODBC 驅動安裝

閱讀目錄一、在線安裝1、yum在線安裝驅動2、配置驅動3、測試連接二、編譯安裝1、MySQL創建測試用戶和測試庫2、安裝驅動3、配置驅動4、測試一、在線安裝1、yum在線安裝驅動# yum -y installunixODBC#yum -y install mysql-connector-odbc2、配置驅動(1)查看驅動程序相關信息# c…

通過 HTTPS 和 SSL 確保 Windows Azure 網站 (WAWS) 安全

編輯人員注釋&#xff1a;本文章由 Windows Azure 網站團隊的項目經理 Erez Benari 撰寫。 隨著身份盜竊和各種形式的網絡犯罪迅速增多&#xff0c;使用安全套接字層 (SSL) 對網站進行保護變得越來越重要和普遍。如果將網站托管在 Windows Azure 網站 (WAWS) 上&#xff0c;您可…

mysql之多表查詢

今天在項目中遇到一個數據庫查詢的問題&#xff1a;三張表分別放置不同的東西&#xff1a;分享的音頻相關數據、分享的文字圖片說說、分享的主題相關數據。所有分享的東西都可看做新鮮事&#xff0c;現在要求從這三張表將相同的幾個字段的數據全部查找出來按照發布時間先后排序…

設立SharePoint2010列表的項目級權限

設置SharePoint2010列表的項目級權限 在SharePoint2010中我們經常會用到這樣的權限設置&#xff0c;在一個列表中可以存儲多個人輸入的數據&#xff0c;但每個人只能看到自己的那部分數據。也就是多個人共同維護一個列表&#xff0c;但各自只能查看、編輯、刪除自己錄入的那部分…

MySQL優化filler值_MySQL 性能優化神器 Explain 使用分析

簡介MySQL 提供了一個 EXPLAIN 命令, 它可以對 SELECT 語句進行分析, 并輸出 SELECT 執行的詳細信息, 以供開發人員針對性優化.EXPLAIN 命令用法十分簡單, 在 SELECT 語句前加上 Explain 就可以了, 例如:EXPLAIN SELECT * from user_info WHERE id < 300;準備為了接下來方便…

Codeforces Round #224 (Div. 2)

題目&#xff1a;http://codeforces.com/contest/382 A Ksenia and Pan Scales 一個求天平是否能夠平衡的題目。。。水題,注意一下結果的輸出就行。 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <cstdlib>5 #include <…

二叉樹第i層中的所有結點_講透學爛二叉樹(二):圖中樹的定義amp;各類型樹的特征分析...

日常中我們見到的二叉樹應用有&#xff0c;Java集合中的TreeSet和TreeMap&#xff0c;C STL中的set、map&#xff0c;以及Linux虛擬內存的管理&#xff0c;以及B-Tree&#xff0c;B-Tree在文件系統&#xff0c;都是通過紅黑樹去實現的。雖然之前寫過《再談堆排序&#xff1a;堆…

node-webkit 開發環境搭建

node-webkit支持的操作系統類型&#xff1a; Linunx:32bit / 64bitWindows: win32Mac:32bit,10.7 開發環境 1&#xff0c;根據自己的操作系統下載響應的nw二進制文件&#xff0c;下載地址&#xff1a;https://github.com/rogerwang/node-webkit 2,建立基本開發目錄&#xff0c;…

mysql sqlsugar_.net core +mysqlSugar(最為簡單的增刪改查)

首先建立.net Core API - empty 這個就不說了然后創建新的Controller記得添加路由[Route("api/Users")]然后在Nuget Packages安裝 所需安裝包這里是用mysql所以下載如下的mysqlSugarCore(切記不要忘記安裝Mysql.Data)創建實例化class文件DbText.cs用于連接數據庫&…

關于eclipse的indigo版中文注釋時字體太小的問題(轉)

eclipse目前最新版代號indigo, 在win7上使用時中文注釋時字體太小的問題. 為什么會這樣? 首先我們應該知道, 在win7系統中, font是有"顯示"和"隱藏" 狀態的. 默認情況下, eclipse使用的默認字體courier new是處于 "隱藏"下的. 這樣當eclipse打開…

webdriver(python)學習筆記七——多層框架定位與智能等待

多層框架或窗口定位&#xff1a; switch_to_frame()switch_to_window()智能等待&#xff1a; implicitly_wait()現在web應用中經常會遇到框架如&#xff08;frame&#xff09;或窗口&#xff08;windows&#xff09;的應用&#xff0c;這樣定位就比較難&#xff0c;有時定位一個…

bbp代碼python_如何正確計算加密債券價格的BBP(Bollinger波段百分比)?

我試圖用這個代碼計算python中的BBP(Bollinger頻帶百分比)。然而&#xff0c;我的^{cd1>}函數返回^{{cd2>}或^{cd3>}用于^{cd4>}。當我使用一些硬幣收盤價時&#xff0c;令人困惑的是&#xff0c;這個函數返回正確的^{cd4>}數字(而不是inf)。這是我的python代碼…