国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

如今做哪些網(wǎng)站致富手機(jī)營銷推廣方案

如今做哪些網(wǎng)站致富,手機(jī)營銷推廣方案,微信社群運營主要是做什么的,資源網(wǎng)站很難做基于php-amqplib/php-amqplib組件適配laravel框架的amqp封裝庫 支持便捷可配置的隊列工作模式 官網(wǎng)詳情 在此基礎(chǔ)上可支持延遲消息、死信隊列等機(jī)制。 環(huán)境要求: PHP版本: ^7.3|^8.0 需要開啟的擴(kuò)展: socket 其他: 如果需要實現(xiàn)延遲任務(wù)需要安裝對應(yīng)版本的ra…

基于php-amqplib/php-amqplib組件適配laravel框架的amqp封裝庫

支持便捷可配置的隊列工作模式?官網(wǎng)詳情

在此基礎(chǔ)上可支持延遲消息、死信隊列等機(jī)制。

環(huán)境要求:

PHP版本: ^7.3|^8.0

需要開啟的擴(kuò)展: socket

其他:

  1. 如果需要實現(xiàn)延遲任務(wù)需要安裝對應(yīng)版本的rabbitmq延遲插件,以rabbitmq3.9.0版本為例:
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez
cp rabbitmq_delayed_message_exchange-3.9.0.ez /opt/rabbitmq/plugins/
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

用法:

第一步 安裝組件:

composer require sai97/laravel-amqp

第二步 發(fā)布服務(wù)以及配置:

php artisan vendor:publish --provider="Sai97\LaravelAmqp\AmqpQueueProviders"

執(zhí)行完后會分別在app/config目錄下生成amqp.php(amqp連接配置等)、app/QueueJob/DefaultQueueJob.php(默認(rèn)隊列任務(wù))

amqp.php

<?phpuse App\QueueJob\DefaultQueueJob;return ["connection" => ["default" => ["host" => env("AMQP_HOST", "127.0.0.1"),"port" => env("AMQP_PORT", 5672),"user" => env("AMQP_USER", "root"),"password" => env("AMQP_PASSWORD", "root")]],"event" => ["default" => DefaultQueueJob::class,]
];

connection為amqp連接配置,可根據(jù)自身業(yè)務(wù)去調(diào)整,完全對應(yīng)php-amqplib/php-amqplib相關(guān)配置項, event是隊列實例標(biāo)識,最好和connection用相同的key以便管理。

目前可支持相關(guān)接口項:

 //獲取連接名稱public function getConnectName(): string;//獲取交換機(jī)名稱public function getExchangeName(): string;//獲取交換機(jī)類型public function getExchangeType(): string;//獲取隊列名稱public function getQueueName(): string;//獲取路由KEYpublic function getRoutingKey(): string;//獲取ContentTypepublic function getContentType(): string;//是否開啟死信模式public function isDeadLetter(): bool;//獲取死信交換機(jī)名稱public function getDeadLetterExchangeName(): string;//獲取死信路由KEYpublic function getDeadLetterRoutingKey(): string;//獲取死信隊列名稱public function getDeadLetterQueueName(): string;//是否開啟延遲任務(wù)public function isDelay(): bool;//獲取延遲任務(wù)過期時長public function getDelayTTL(): int;//獲取隊列附加參數(shù)public function getQueueArgs(): array;//獲取回調(diào)函數(shù)public function getCallback(): callable;//是否自動提交ACKpublic function isAutoAck(): bool;

當(dāng)然你也可以自定義隊列實例,只要繼承Sai97\LaravelAmqp\Queue基類即可,具體功能配置參數(shù)參考Sai97\LaravelAmqp\QueueInterface。

代碼示例:

生產(chǎn)者:

$message = "This is message...";
$amqpQueueServices = new AmqpQueueServices(QueueFactory::getInstance(DefaultQueueJob::class));
$amqpQueueServices->producer($message);

消費者:

利用laravel自帶的Command去定義一個RabbitMQWorker自定義命令行,僅需要定義一次,后續(xù)只需要更改amqp.php配置文件添加不同的隊列實例綁定關(guān)系即可,以下是RabbitMQWorker演示代碼:

<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;
use Sai97\LaravelAmqp\AmqpQueueServices;
use Sai97\LaravelAmqp\QueueFactory;class RabbitMQWorker extends Command
{/*** The name and signature of the console command.** @var string*/protected $signature = 'rabbitmq:worker {event}';/*** The console command description.** @var string*/protected $description = 'rabbitmq worker 消費進(jìn)程';/*** Create a new command instance.** @return void*/public function __construct(){parent::__construct();}/*** Execute the console command.** @return mixed*/public function handle(){try {$event = $this->argument("event");$eventConfig = config("amqp.event");if (!isset($eventConfig[$event]) || empty($entity = $eventConfig[$event])) {return $this->error("未知的事件: {$event}");}$this->info("rabbitmq worker of event[{$event}] process start ...");$amqpQueueServices = new AmqpQueueServices(QueueFactory::getInstance($entity));$amqpQueueServices->consumer();} catch (\Throwable $throwable) {$event = $event ?? "";$this->error($throwable->getFile() . " [{$throwable->getLine()}]");return $this->error("rabbitmq worker of event[{$event}] process error:{$throwable->getMessage()}");}$this->info("rabbitmq worker of event[{$event}] process stop ...");}
}

完成RabbitMQWorker消費者命令后,我們只需執(zhí)行php artisan rabbitmq:worker default 完成監(jiān)聽,其中default是可變的,請根據(jù)的amqp.php配置中的隊列實例綁定標(biāo)識去輸入。

因為隊列的消費者都需要是守護(hù)進(jìn)程,所以我們可以依托supervisord進(jìn)程管理器去定義RabbitMQWorker消費者命令,這樣可以保證進(jìn)程可后臺允許以及重啟啟動等,以下是supervisord.conf配置文件示例:

[program:rabbitmq-worker-default]
#process_name=%(program_name)s_%(process_num)d
process_name=worker_%(process_num)d
numprocs=3
command=/usr/local/bin/php /app/www/laravel8/artisan rabbitmq:worker default
autostart=true
autorestart=true
startretries=3
priority=3
stdout_logfile=/var/log/rabbitmq-worker-default.log
redirect_stderr=true

搭配supervisord來進(jìn)行管理消費者進(jìn)程有許多便捷的方面:

  1. 如果需要新增一個隊列實例,只需要按照上述格式復(fù)制一個program,可以在不影響其他進(jìn)程的情況下進(jìn)程更新supervisord配置:
supervisorctl update

? ? 2. 通過配置numprocs參數(shù)來設(shè)定需要開啟多少個相同配置項的消費者worker,這在任務(wù)分發(fā)、并行處理等場景十分適用,大大提高消費者執(zhí)行效率。

這里不詳細(xì)敘述supervisord相關(guān)操作,具體可查看supervisord官方文檔。

參考鏈接:https://github.com/Z-Sai/laravel-amqp

http://aloenet.com.cn/news/33035.html

相關(guān)文章:

  • 湖北廣域建設(shè)管理有限公司網(wǎng)站北京seo優(yōu)化哪家公司好
  • 廣西十佳旅游景區(qū)網(wǎng)站人多怎么優(yōu)化
  • 網(wǎng)站制作公司珠海互聯(lián)網(wǎng)輿情監(jiān)控系統(tǒng)
  • 3合1網(wǎng)站建設(shè)價格廣告投放平臺都有哪些
  • 建站公司服務(wù)費包括哪些查詢網(wǎng)站備案信息
  • qq空間是用什么做的網(wǎng)站成都網(wǎng)絡(luò)推廣外包公司哪家好
  • 網(wǎng)站策劃的步驟百度信息流開戶多少錢
  • 帝國cms做笑話網(wǎng)站宣傳渠道和宣傳方式有哪些
  • 湘潭關(guān)鍵詞優(yōu)化報價成都網(wǎng)站建設(shè)方案優(yōu)化
  • 廣州專業(yè)網(wǎng)站建設(shè)seo是啥意思
  • 徐州建設(shè)安全監(jiān)督網(wǎng)站搜索引擎seo
  • 做軟件的公司網(wǎng)站有哪些百度站長工具
  • 江蘇省工程建設(shè)信息網(wǎng)連云港seo優(yōu)化公司
  • 做網(wǎng)站改變圖片位置百度一下你就知道官網(wǎng)網(wǎng)址
  • frontpage做的網(wǎng)站好不好關(guān)鍵詞在線聽免費
  • 空間租用網(wǎng)站模板情感營銷的十大案例
  • 個人交互式網(wǎng)站備案鄭州百度推廣公司電話
  • c語言 做網(wǎng)站瀏覽器網(wǎng)站大全
  • 深圳網(wǎng)站建設(shè)微信開發(fā)長沙做搜索引擎的公司
  • 廣州做網(wǎng)站技術(shù)seo公司培訓(xùn)課程
  • 科技創(chuàng)新網(wǎng)站建設(shè)策劃書溫州seo網(wǎng)站建設(shè)
  • 做網(wǎng)站用服務(wù)器軟文發(fā)布平臺媒體
  • 做網(wǎng)站到底需要什么it培訓(xùn)班出來現(xiàn)狀
  • 綠色環(huán)保企業(yè)網(wǎng)站模板鄭州seo公司
  • wordpress私人建站主題百度極速版客服人工在線咨詢
  • 網(wǎng)站策劃模版百度廣告銷售
  • 提高網(wǎng)站速度如何建立自己的網(wǎng)頁
  • 網(wǎng)站空間不支持php5.4關(guān)鍵詞查詢網(wǎng)站的工具
  • 網(wǎng)站建設(shè)seo運營規(guī)劃優(yōu)就業(yè)seo課程學(xué)多久
  • 可以做網(wǎng)站的行業(yè)手機(jī)網(wǎng)站排名優(yōu)化