国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
Homestead(ubuntu) Laravel 使用RabbitMQ
用法2:使用laravel-queue-rabbitmq rabbitmq-server" >用法2:使用laravel-queue-rabbitmq rabbitmq-server
根據(jù)RabbitMQ官網(wǎng)的描述:RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.翻譯過來就是:RabbitMQ 運行在許多作業(yè)系統(tǒng)和雲(yún)端環(huán)境中,並為大多數(shù)流行語言提供了廣泛的開發(fā)工具。 " >根據(jù)RabbitMQ官網(wǎng)的描述:RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.翻譯過來就是:RabbitMQ 運行在許多作業(yè)系統(tǒng)和雲(yún)端環(huán)境中,並為大多數(shù)流行語言提供了廣泛的開發(fā)工具。
%%PRE_BLOCK_6%%測試佇列(程式碼和方法1程式碼一樣)結(jié)果:" >開啟佇列:%%PRE_BLOCK_6%%測試佇列(程式碼和方法1程式碼一樣)結(jié)果:
首頁 php框架 Laravel laravel怎麼使用RabbitMQ(Homestead環(huán)境)

laravel怎麼使用RabbitMQ(Homestead環(huán)境)

Dec 27, 2021 am 10:51 AM
laravel rabbitmq

Homestead環(huán)境下Laravel怎麼使用RabbitMQ?以下這篇文章就來跟大家介紹一下Homestead(ubuntu) Laravel 使用RabbitMQ的方法,希望對大家有幫助!

laravel怎麼使用RabbitMQ(Homestead環(huán)境)

Homestead(ubuntu) Laravel 使用RabbitMQ

用法1:單獨使用laravel-queue-rabbitmq

laravel安裝RabbitMQ:
首先註意自己laravel-queue-rabbitmq支援的laravel版本資訊:

##6 ##October 5th, 2021Documentation#10
Package Version # Laravel Version Bug Fixes Until
9
##6, 7######October 5th, 2021##### #Documentation############11######8#######April 6th, 2021######Documentation############ #

執(zhí)行安裝指令:

composer require vladimir-yuldashev/laravel-queue-rabbitmq

等待安裝完成後在config/queue.php中加入:

'connections' => [
  // ...

  'rabbitmq' => [

     'driver' => 'rabbitmq',
     'queue' => env('RABBITMQ_QUEUE', 'default'),
     'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,

     'hosts' => [
         [
             'host' => env('RABBITMQ_HOST', '127.0.0.1'),
             'port' => env('RABBITMQ_PORT', 5672),
             'user' => env('RABBITMQ_USER', 'guest'),
             'password' => env('RABBITMQ_PASSWORD', 'guest'),
             'vhost' => env('RABBITMQ_VHOST', '/'),
         ],
     ],

     'options' => [
         'ssl_options' => [
             'cafile' => env('RABBITMQ_SSL_CAFILE', null),
             'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
             'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
             'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
             'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
         ],
         'queue' => [
             'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,
         ],
     ],

     /*
      * Set to "horizon" if you wish to use Laravel Horizon.
      */
     'worker' => env('RABBITMQ_WORKER', 'default'),

  ],

  // ...    ],

並且在config/ queue.php中修改:

//把sync修改為rabbitmq,同理使用redis驅(qū)動則修改為redis
'default' => env('QUEUE_CONNECTION', 'sync'),
'default' => env('QUEUE_CONNECTION', 'rabbitmq'),
//或者修改.env下QUEUE_CONNECTION=rabbitmq
QUEUE_CONNECTION=rabbitmq

執(zhí)行指令產(chǎn)生任務類別:

php artisan make:job TestQueue

修改TestQueue.php程式碼:

<?php

namespace App\Jobs;

use App\Models\UserInfo;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class TestQueue implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $data;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        //
        $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        $data = $this->data;
        UserInfo::query()->firstOrCreate(
            ["phone" => $data["phone"]],
            ["name" => $data["name"]]
        );
    }
}

呼叫佇列函數(shù):

public function test(Request $request){
    $data = ["name" => "李大", "phone" => "12345678901"];
    $this->dispatch(new TestQueue($data));
}

開啟佇列:

php artisan queue:work

呼叫函數(shù)後執(zhí)行結(jié)果:

laravel怎麼使用RabbitMQ(Homestead環(huán)境)

佇列消費成功,檢視資料庫,資料也寫入正常。

到這裡,會有一個問題,既然方法1能夠正常使用,為什麼還要加入rabbitmq-server,rabbitmq-server又是乾啥的?
根據(jù)官方描述-RabbitMQ is a feature rich, multi-protocol messaging broker. It supports:

  • AMQP 0-9-1

  • ##AMQP 0-9-1
  • ##AMQP 0-9-1
  • AMQP 1.0

MQTT 3.1.1

STOMP 1.0 through 1.2

#翻譯過來就是:RabbitMQ 是一個功能豐富的多協(xié)定訊息代理程式。它支援以下幾種協(xié)定。

總結(jié)起來就是:方法1使用的是laravel隊列的使用方法,比較簡單,並沒有涉及到太多隊列當中概念性的東西(例如生產(chǎn)者和消費者等等),而使用

rabbitmq-server

,為大家提供了一個服務端,不管是什麼語言,使用帳號、密碼連接到對應的

host

#和

port

就能使用RabbitMQ。類似的還有EMQX(mqtt服務端)等等。並且laravel怎麼使用RabbitMQ(Homestead環(huán)境)rabbitmq-server

提供了一個管理後臺,可以查看佇列的相關(guān)情況,以便於管理。

laravel怎麼使用RabbitMQ(Homestead環(huán)境)啟動rabbitmq-server:

sudo service rabbitmq-server start

注意:

config/queue.php

username

laravel 隊列之laravel怎麼使用RabbitMQ(Homestead環(huán)境)password

裡不要使用預設(shè)的guest帳號密碼來連接,否則會報錯:

The connection timed out after 3 sec while awaiting incoming data
前文已經(jīng)新增過admin的帳號密碼,使用這個帳號密碼還需要給admin帳號新增權(quán)限:
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmq-server管理後臺查看使用者權(quán)限:

有權(quán)限是

Can access virtual hosts

顯示

/

,無權(quán)限就是顯示

No Access

。

其他用法

1、laravel-queue-rabbitmq Supervisor守護程式。本質(zhì)上就是換了個佇列驅(qū)動,用法和redis無任何差異;

2、可以使用類似這種用法:java操作RabbitMQ,脫離了laravel,使用連接生產(chǎn)者消費者的方式;

3、還可以使用更複雜的用法,例如接入其他通訊協(xié)定(例如MQTT),訂閱主題的方式等等,具體用法可以參考RabbitMQ官網(wǎng)。

總結(jié)
###常規(guī)使用laravel redis佇列 Supervisor的方式已經(jīng)能滿足我們?nèi)粘P枨蟆8鶕?jù)錢老的《工程控制論》的說法就是──一個系統(tǒng),最新或最先進的技術(shù)未必是最優(yōu)的,適合系統(tǒng)的、確保系統(tǒng)穩(wěn)定的才是最好的。 ######當然反過來我們也不能墨守成規(guī),自己的技能包也要適時的更新和進步,這樣才能無愧于自己,無愧於自己熱愛的事業(yè)。 #########相關(guān)推薦:###最新的五個Laravel影片教學##########

以上是laravel怎麼使用RabbitMQ(Homestead環(huán)境)的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Laravel的政策是什麼,如何使用? Laravel的政策是什麼,如何使用? Jun 21, 2025 am 12:21 AM

InLaravel,policiesorganizeauthorizationlogicformodelactions.1.Policiesareclasseswithmethodslikeview,create,update,anddeletethatreturntrueorfalsebasedonuserpermissions.2.Toregisterapolicy,mapthemodeltoitspolicyinthe$policiesarrayofAuthServiceProvider.

Laravel中的路線是什麼?如何定義? Laravel中的路線是什麼?如何定義? Jun 12, 2025 pm 08:21 PM

在Laravel中,路由是應用程序的入口點,用於定義客戶端請求特定URI時的響應邏輯。路由將URL映射到對應的處理代碼,通常包含HTTP方法、URI和動作(閉包或控制器方法)。 1.路由定義基本結(jié)構(gòu):使用Route::verb('/uri',action)的方式綁定請求;2.支持多種HTTP動詞如GET、POST、PUT等;3.可通過{param}定義動態(tài)參數(shù)並傳遞數(shù)據(jù);4.路由可命名以便生成URL或重定向;5.使用分組功能統(tǒng)一添加前綴、中間件等共享設(shè)置;6.路由文件按用途分為web.php、ap

我如何在Laravel運行播種機? (PHP Artisan DB:種子) 我如何在Laravel運行播種機? (PHP Artisan DB:種子) Jun 12, 2025 pm 06:01 PM

Thephpartisandb:seedcommandinLaravelisusedtopopulatethedatabasewithtestordefaultdata.1.Itexecutestherun()methodinseederclasseslocatedin/database/seeders.2.Developerscanrunallseeders,aspecificseederusing--class,ortruncatetablesbeforeseedingwith--trunc

我如何在Laravel進行測試? (PHP手工測試) 我如何在Laravel進行測試? (PHP手工測試) Jun 13, 2025 am 12:02 AM

ToruntestsinLaraveleffectively,usethephpartisantestcommandwhichsimplifiesPHPUnitusage.1.Setupa.env.testingfileandconfigurephpunit.xmltouseatestdatabaselikeSQLite.2.Generatetestfilesusingphpartisanmake:test,using--unitforunittests.3.Writetestswithmeth

Laravel中工匠命令行工具的目的是什麼? Laravel中工匠命令行工具的目的是什麼? Jun 13, 2025 am 11:17 AM

Artisan是Laravel的命令行工具,用于提升開發(fā)效率。其核心作用包括:1.生成代碼結(jié)構(gòu),如控制器、模型等,通過make:controller等命令自動創(chuàng)建文件;2.管理數(shù)據(jù)庫遷移與填充,使用migrate運行遷移,db:seed填充數(shù)據(jù);3.支持自定義命令,如make:command創(chuàng)建命令類實現(xiàn)業(yè)務邏輯封裝;4.提供調(diào)試與環(huán)境管理功能,如key:generate生成密鑰,serve啟動開發(fā)服務器。熟練使用Artisan可顯著提高Laravel開發(fā)效率。

Laravel中的控制器是什麼,他們的目的是什麼? Laravel中的控制器是什麼,他們的目的是什麼? Jun 20, 2025 am 12:31 AM

控制器在Laravel中的主要作用是處理HTTP請求並返迴響應,以保持代碼的整潔和可維護性。通過將相關(guān)請求邏輯集中到一個類中,控制器使路由文件更簡潔,例如將用戶資料展示、編輯和刪除等操作分別放在UserController的不同方法中。創(chuàng)建控制器可通過Artisan命令phpartisanmake:controllerUserController實現(xiàn),而資源控制器則使用--resource選項生成,涵蓋標準CRUD操作的方法。接著需在路由中綁定控制器,如Route::get('/user/{id

如何啟動Laravel開發(fā)服務器? (PHP手工藝品) 如何啟動Laravel開發(fā)服務器? (PHP手工藝品) Jun 12, 2025 pm 07:33 PM

要啟動Laravel開發(fā)服務器,請使用命令phpartisanserve,默認在http://127.0.0.1:8000提供服務。 1.確保終端位於包含artisan文件的項目根目錄,若不在正確路徑則使用cdyour-project-folder切換;2.運行命令並檢查錯誤,如PHP未安裝、端口被佔用或文件權(quán)限問題,可指定不同端口如phpartisanserve--port=8080;3.在瀏覽器訪問http://127.0.0.1:8000查看應用首頁,若無法加載請確認端口號、防火牆設(shè)置或嘗試

如何使用Laravel的驗證系統(tǒng)來驗證形式數(shù)據(jù)? 如何使用Laravel的驗證系統(tǒng)來驗證形式數(shù)據(jù)? Jun 22, 2025 pm 04:09 PM

Laravelprovidesrobusttoolsforvalidatingformdata.1.Basicvalidationcanbedoneusingthevalidate()methodincontrollers,ensuringfieldsmeetcriterialikerequired,maxlength,oruniquevalues.2.Forcomplexscenarios,formrequestsencapsulatevalidationlogicintodedicatedc

See all articles