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

目錄
Homestead(ubuntu) Laravel 使用RabbitMQ
用法2:使用laravel-queue-rabbitmq rabbitmq-server" >用法2:使用laravel-queue-rabbitmq rabbitmq-server
總結(jié)起來(lái)就是:方法1使用的是laravel隊(duì)列的使用方法,比較簡(jiǎn)單,并沒有涉及到太多隊(duì)列當(dāng)中概念性的東西(例如生產(chǎn)者和消費(fèi)者等等),而使用rabbitmq-server,為大家提供了一個(gè)服務(wù)端,不管是什么語(yǔ)言,使用賬號(hào)、密碼連接到相應(yīng)的hostport就能使用RabbitMQ。類似的還有EMQX(mqtt服務(wù)端)等等。并且rabbitmq-server提供了一個(gè)管理后臺(tái),可以查看隊(duì)列的相關(guān)情況,便于管理。" >總結(jié)起來(lái)就是:方法1使用的是laravel隊(duì)列的使用方法,比較簡(jiǎn)單,并沒有涉及到太多隊(duì)列當(dāng)中概念性的東西(例如生產(chǎn)者和消費(fèi)者等等),而使用rabbitmq-server,為大家提供了一個(gè)服務(wù)端,不管是什么語(yǔ)言,使用賬號(hào)、密碼連接到相應(yīng)的hostport就能使用RabbitMQ。類似的還有EMQX(mqtt服務(wù)端)等等。并且rabbitmq-server提供了一個(gè)管理后臺(tái),可以查看隊(duì)列的相關(guān)情況,便于管理。
注意:" >注意:
首頁(yè) 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?下面本篇文章就來(lái)給大家介紹一下Homestead(ubuntu) Laravel 使用RabbitMQ的方法,希望對(duì)大家有所幫助!

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

Homestead(ubuntu) Laravel 使用RabbitMQ

用法1:?jiǎn)为?dú)使用laravel-queue-rabbitmq

laravel安裝RabbitMQ:
首先注意自己laravel-queue-rabbitmq支持的laravel版本信息:

Package Version Laravel Version Bug Fixes Until
Package Version Laravel Version Bug Fixes Until
9 6 October 5th, 2021 Documentation
10 6, 7 October 5th, 2021 Documentation
11 8 April 6th, 2021 Documentation
9 6 October 5th, 2021 Documentation
10 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ū)動(dòng)則修改為redis
'default' => env('QUEUE_CONNECTION', 'sync'),
'default' => env('QUEUE_CONNECTION', 'rabbitmq'),
//或者修改.env下QUEUE_CONNECTION=rabbitmq
QUEUE_CONNECTION=rabbitmq

執(zhí)行命令生成任務(wù)類:

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"]]
        );
    }
}

調(diào)用隊(duì)列函數(shù):

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

開啟隊(duì)列:

php artisan queue:work

調(diào)用函數(shù)后執(zhí)行結(jié)果:

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

隊(duì)列消費(fèi)成功,查看數(shù)據(jù)庫(kù),數(shù)據(jù)也寫入正常。

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

  • AMQP 0-9-1

  • AMQP 1.0

  • MQTT 3.1.1

  • STOMP 1.0 through 1.2

翻譯過(guò)來(lái)就是:RabbitMQ 是一個(gè)功能豐富的多協(xié)議消息代理。 它支持以下幾種協(xié)議。

根據(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.

翻譯過(guò)來(lái)就是:

RabbitMQ 運(yùn)行在許多操作系統(tǒng)和云環(huán)境中,并為大多數(shù)流行語(yǔ)言提供了廣泛的開發(fā)工具。

啟動(dòng)rabbitmq-server:

sudo service rabbitmq-server start

開啟隊(duì)列:

php artisan queue:work

測(cè)試隊(duì)列(代碼和方法1代碼一樣)結(jié)果:

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

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

config/queue.phpusernamepassword里不要使用默認(rèn)的guest賬號(hào)密碼來(lái)連接,否則會(huì)報(bào)錯(cuò):

The connection timed out after 3 sec while awaiting incoming data

前文已經(jīng)添加過(guò)admin的賬號(hào)密碼,使用這個(gè)賬號(hào)密碼還需要給admin賬號(hào)添加權(quán)限:

sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

rabbitmq-server管理后臺(tái)查看用戶權(quán)限:

laravel 隊(duì)列之laravel怎么使用RabbitMQ(Homestead環(huán)境)

有權(quán)限是Can access virtual hosts顯示/,無(wú)權(quán)限就是顯示No Access。

其他用法

1、laravel-queue-rabbitmq Supervisor守護(hù)進(jìn)程。本質(zhì)上就是換了個(gè)隊(duì)列驅(qū)動(dòng),用法和redis無(wú)任何差別;

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

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

總結(jié)

常規(guī)使用laravel redis隊(duì)列 Supervisor的方式已經(jīng)能滿足我們?nèi)粘P枰?。按照錢老的《工程控制論》的說(shuō)法就是——一個(gè)系統(tǒng),最新或者最先進(jìn)的技術(shù)未必是最優(yōu)的,適合系統(tǒng)的、確保系統(tǒng)穩(wěn)定的才是最好的。

當(dāng)然反過(guò)來(lái)我們也不能墨守成規(guī),自己的技能包也要適時(shí)的更新和進(jìn)步,這樣才能無(wú)愧于自己,無(wú)愧于自己熱愛的事業(yè)。

相關(guān)推薦:最新的五個(gè)Laravel視頻教程

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

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何創(chuàng)建Laravel包(Package)開發(fā)? 如何創(chuàng)建Laravel包(Package)開發(fā)? May 29, 2025 pm 09:12 PM

在Laravel中創(chuàng)建包的步驟包括:1)理解包的優(yōu)勢(shì),如模塊化和復(fù)用;2)遵循Laravel的命名和結(jié)構(gòu)規(guī)范;3)使用artisan命令創(chuàng)建服務(wù)提供者;4)正確發(fā)布配置文件;5)管理版本控制和發(fā)布到Packagist;6)進(jìn)行嚴(yán)格的測(cè)試;7)編寫詳細(xì)的文檔;8)確保與不同Laravel版本的兼容性。

Laravel中的中間件(Middleware)是什么?如何使用? Laravel中的中間件(Middleware)是什么?如何使用? May 29, 2025 pm 09:27 PM

中間件是Laravel中的過(guò)濾機(jī)制,用于攔截和處理HTTP請(qǐng)求。使用步驟:1.創(chuàng)建中間件:使用命令“phpartisanmake:middlewareCheckRole”。2.定義處理邏輯:在生成的文件中編寫具體邏輯。3.注冊(cè)中間件:在Kernel.php中添加中間件。4.使用中間件:在路由定義中應(yīng)用中間件。

Laravel頁(yè)面緩存(Page Cache)策略 Laravel頁(yè)面緩存(Page Cache)策略 May 29, 2025 pm 09:15 PM

Laravel的頁(yè)面緩存策略可以顯著提升網(wǎng)站性能。 1)使用cache輔助函數(shù)實(shí)現(xiàn)頁(yè)面緩存,如Cache::remember方法。 2)選擇合適的緩存后端,如Redis。 3)注意數(shù)據(jù)一致性問題,可使用細(xì)粒度緩存或事件監(jiān)聽器清除緩存。 4)結(jié)合路由緩存、視圖緩存和緩存標(biāo)簽進(jìn)一步優(yōu)化。通過(guò)合理應(yīng)用這些策略,可以有效提升網(wǎng)站性能。

Laravel MVC體系結(jié)構(gòu):出了什么問題? Laravel MVC體系結(jié)構(gòu):出了什么問題? Jun 05, 2025 am 12:05 AM

Laravel'sMVCarchitecturecanfaceseveralissues:1)Fatcontrollerscanbeavoidedbydelegatinglogictoservices.2)Overloadedmodelsshouldfocusondataaccess.3)Viewsshouldremainsimple,avoidingPHPlogic.4)PerformanceissueslikeN 1queriescanbemitigatedwitheagerloading.

如何在Laravel中使用Seeder填充測(cè)試數(shù)據(jù)? 如何在Laravel中使用Seeder填充測(cè)試數(shù)據(jù)? May 29, 2025 pm 09:21 PM

在Laravel中使用Seeder填充測(cè)試數(shù)據(jù)是開發(fā)過(guò)程中一個(gè)非常實(shí)用的技巧,下面我將詳細(xì)講解如何實(shí)現(xiàn)這一點(diǎn),同時(shí)分享一些我在實(shí)際項(xiàng)目中遇到的問題和解決方案。在Laravel中,Seeder是用來(lái)填充數(shù)據(jù)庫(kù)的工具,它可以幫助我們快速生成測(cè)試數(shù)據(jù),從而方便開發(fā)和測(cè)試。使用Seeder不僅能節(jié)省時(shí)間,還能確保數(shù)據(jù)的一致性,這對(duì)于團(tuán)隊(duì)協(xié)作和自動(dòng)化測(cè)試尤其重要。我記得在一次項(xiàng)目中,我們需要為一個(gè)電商平臺(tái)生成大量的商品和用戶數(shù)據(jù),當(dāng)時(shí)Seeder就派上了大用場(chǎng)。讓我們看看如何使用它。首先,確保你的Lara

Laravel遷移(Migrations)是什么?如何使用? Laravel遷移(Migrations)是什么?如何使用? May 29, 2025 pm 09:24 PM

Laravel的遷移是數(shù)據(jù)庫(kù)版本控制工具,允許開發(fā)者編程方式定義和管理數(shù)據(jù)庫(kù)結(jié)構(gòu)變化。1.使用Artisan命令創(chuàng)建遷移文件。2.遷移文件包含up和down方法,分別定義創(chuàng)建/修改和回滾數(shù)據(jù)庫(kù)表。3.執(zhí)行遷移使用phpartisanmigrate命令,回滾使用phpartisanmigrate:rollback。

Laravel:初學(xué)者的簡(jiǎn)單MVC項(xiàng)目 Laravel:初學(xué)者的簡(jiǎn)單MVC項(xiàng)目 Jun 08, 2025 am 12:07 AM

Laravel適合初學(xué)者創(chuàng)建MVC項(xiàng)目。1)安裝Laravel:使用composercreate-project--prefer-distlaravel/laravelyour-project-name命令。2)創(chuàng)建模型、控制器和視圖:定義Post模型,編寫PostController處理邏輯,創(chuàng)建index和create視圖顯示和添加帖子。3)設(shè)置路由:在routes/web.php中配置/posts相關(guān)路由。通過(guò)這些步驟,你可以構(gòu)建一個(gè)簡(jiǎn)單的博客應(yīng)用,掌握Laravel和MVC的基礎(chǔ)知識(shí)。

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

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

See all articles