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

主頁 > 知識庫 > 如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)

如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)

熱門標簽:凱立德地鐵站地圖標注 天津電銷外呼系統(tǒng)違法嗎 上海400客服電話怎么申請 滄州電銷外呼系統(tǒng)價格 手機外呼系統(tǒng)什么原理 銀行信貸電話機器人 合肥ai電銷機器人費用 溫州外呼系統(tǒng)招商 400電話個人能不能辦理

系統(tǒng)介紹

從圖中可以看到,我們這個系統(tǒng)是一個基于事件的異步任務系統(tǒng)。就是說當一個事件產生時,生產者將事件拋給調度器,調度器負責查詢事件下有哪些任務,然后將這些任務丟到相應的隊列中,最后由消費者消費任務隊列中的任務。

在整個系統(tǒng)中主要分為三大部分

1.事件生產者,即產生消息事件的一方。

2.任務調度器(Scheduler),負責注冊事件并調度任務。

3.消費者(Worker),負責消費任務隊列中的任務。

事件生產者

事件生產者很簡單,在業(yè)務系統(tǒng)中直接調用即可,代碼如下。

?php
 
require_once DIR.'/../autoload.php';
 
use Asynclib\Ebats\Event;
 
try{
 
    $event = new Event('order_paied');  //定義事件
 
    $event->setOptions(['order_id' => 'FB138020392193312']); //事件產生的參數(shù)
 
    $event->publish();
 
}catch (Exception $exc){
 
    echo $exc->getMessage();
 
}

任務調度器

調度器主要做兩件事,一是注冊事件,另一個是調度任務。

注冊事件代碼如下:

//注冊事件
 
EventManager::register('order_create', 'closeOrder', 'demo', 10);//關閉未付款訂單(延遲任務)
 
EventManager::register('order_paied', 'virtualShipping', 'demo'); //虛擬商品自動發(fā)貨

這樣就注冊了兩個事件,事件下各有一個任務。

具體調度部分代碼很簡單,就不多贅述,有興趣的可以去看代碼。

消費者

重頭戲來了,一個異步任務系統(tǒng)最重要的就是消費端了,現(xiàn)在讓我們來看下Worker的流程圖。

可以看到,在這里我們采用了兩個交換器和兩個隊列,一個負責處理正常的任務即ntask,另一個負責處理需要延遲執(zhí)行的任務即dtask。簡單描述下一個任務的生命周期。

正常任務

1、task產生,進入正常任務的交換器Exchange[ebats_core_ntask]

2、交換器根據(jù)topic將任務分發(fā)到對應的隊列中

3、子進程ntask阻塞等待成功獲取到task,并執(zhí)行該任務

4、執(zhí)行失敗,需要重試時拋出RetryException,不需要重試時拋出TaskException

5、子進程ntask捕獲到重試異常將任務拋給延遲任務的交換器Exchange[ebats_core_dtask]

6、將任務執(zhí)行信息回調給上層開發(fā)者以便保存查看

延遲任務

1、子進程dtask阻塞等待成功獲取到task,并執(zhí)行該任務
2、執(zhí)行失敗,需要重試時拋出RetryException,不需要重試時拋出TaskException
3、子進程dtask捕獲到重試異常將任務拋給延遲任務的交換器Exchange[ebats_core_dtask]
4、將任務執(zhí)行信息回調給上層開發(fā)者以便保存查看

消費者代碼如下:

require_once DIR.'/../autoload.php';
 
require_once DIR.'/task/TaskDemoModel.php';
 
use Asynclib\Ebats\Worker;
 
  
 
//執(zhí)行結果回調函數(shù)
 
$callback = function ($topic, $taskid, $taskname, $params, $timeuse, $message){
 
  
 
};
 
$worker = new Worker($callback);  //支持多進程消費默認為1
 
$worker->setQueue('demo');  //隊列名和事件的topic一一對應
 
$worker->run();

自定義調度器

一般來說這是一個基于事件的任務系統(tǒng),那么能不能直接產生任務呢。答案是肯定的。

只需要創(chuàng)建一個自定義調度器,由您自行實現(xiàn)調度邏輯,最終生成一個任務即可。代碼如下:

?php
 
require_once DIR.'/../autoload.php';
 
use Asynclib\Ebats\Task;
 
use Asynclib\Core\Consumer;
 
use Asynclib\Amq\ExchangeTypes;
 
use Asynclib\Exception\ExceptionInterface;
 
  
 
/**
 
 * 本示例演示了如何創(chuàng)建一個自定義調度器,開發(fā)者可以根據(jù)自身需求開發(fā)自己的任務調度器
 
 */
 
try{
 
    $worker = new Consumer();
 
    $worker->setExchange('order_fanout', ExchangeTypes::TOPIC);
 
    $worker->setQueue('shzf_order_paied', ['*.*.WAIT_SELLER_SEND_GOODS']);
 
    $worker->run(function($key, $msg){
 
        $order_data = json_encode($msg);
 
        echo " [$key] $order_data \n";
 
        Task::create('demo', 'orderAsync', $msg);//創(chuàng)建任務,之后消息將作為參數(shù)由任務接管處理
 
    });
 
}catch (ExceptionInterface $exc){
 
    echo $exc->getMessage();
 
}

這樣,當接收到消息時就會產生一個orderAsync的任務,您只需要啟動一個用來消費這個Topic的Worker即可。

也許你會覺得這里直接寫業(yè)務邏輯的代碼就可以了,實際上也確實可以。當你可以忍受一個進程慢慢消費的時候是可以這樣做的。但大多數(shù)情況下我們還是希望它能夠盡快的消費掉,所以建議這里只負責創(chuàng)建任務,具體任務的業(yè)務邏輯由worker去執(zhí)行。

以上就是如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)的詳細內容,更多關于用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • PHP swoole中使用task進程異步的處理耗時任務應用案例分析
  • PHP Swoole異步讀取、寫入文件操作示例
  • PHP Swoole異步Redis客戶端實現(xiàn)方法示例
  • PHP Swoole異步MySQL客戶端實現(xiàn)方法示例
  • php基于 swoole 實現(xiàn)的異步處理任務功能示例
  • PHP swoole和redis異步任務實現(xiàn)方法分析
  • PHP擴展Swoole實現(xiàn)實時異步任務隊列示例
  • Swoole實現(xiàn)異步投遞task任務案例詳解
  • 詳解thinkphp5+swoole實現(xiàn)異步郵件群發(fā)(SMTP方式)
  • php異步多線程swoole用法實例

標簽:溫州 七臺河 金華 怒江 酒泉 洛陽 白城 赤峰

巨人網(wǎng)絡通訊聲明:本文標題《如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)》,本文關鍵詞  如,何用,RabbitMQ,和,Swoole,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)》相關的同類信息!
  • 本頁收集關于如何用RabbitMQ和Swoole實現(xiàn)一個異步任務系統(tǒng)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品乱码久久久久久 | 欧美日韩一卡二卡| 国产成人午夜视频| 精品一区二区三区不卡 | 日本va欧美va欧美va精品| 久久疯狂做爰流白浆xx| 国产成人aaaa| 懂色av一区二区在线播放| 成人免费av资源| 色成年激情久久综合| 欧美色欧美亚洲另类二区| 日韩电影免费在线看| 精彩视频一区二区三区| 成人手机在线视频| 欧美伦理视频网站| 欧美国产日韩a欧美在线观看| 亚洲免费观看在线视频| 日本不卡的三区四区五区| 成人免费高清在线| 欧美另类高清zo欧美| 国产亚洲欧美一区在线观看| 亚洲人妖av一区二区| 首页欧美精品中文字幕| 国产成人亚洲精品青草天美| 色哟哟国产精品免费观看| 欧美成人aa大片| 一区二区成人在线视频| 国产精品自拍一区| 欧美精品久久一区| 中文字幕中文字幕一区| 久久精品国产秦先生| 色综合久久久久网| 2020国产成人综合网| 亚洲超丰满肉感bbw| 国产白丝精品91爽爽久久| 欧日韩精品视频| 日韩欧美三级在线| 亚洲成人av电影在线| 成人99免费视频| 日韩色视频在线观看| 亚洲欧洲国产日韩| 国产精品18久久久久久久久久久久 | 91精品国产综合久久香蕉麻豆| 国产精品不卡一区| 93久久精品日日躁夜夜躁欧美| 国产亚洲va综合人人澡精品| 国内久久婷婷综合| 精品久久久久一区二区国产| 成人av在线播放网站| 久久久久久久网| 麻豆成人久久精品二区三区红 | 一区二区三区蜜桃网| a在线欧美一区| 国产精品免费看片| 国产成人精品综合在线观看| 国产欧美日产一区| 国产suv精品一区二区三区| 久久久影视传媒| 国精产品一区一区三区mba视频| 69p69国产精品| 毛片av一区二区三区| 日韩欧美的一区二区| 一区二区国产视频| 国产精品午夜电影| 成人综合婷婷国产精品久久蜜臀| 91成人在线观看喷潮| 欧美大片一区二区三区| 亚洲人一二三区| 国产酒店精品激情| 3atv一区二区三区| 中文字幕在线不卡视频| 日本伊人精品一区二区三区观看方式 | 国产一区二区伦理| 91视视频在线观看入口直接观看www| 91精品午夜视频| 亚洲一区二区三区四区在线 | 免费高清不卡av| 一本大道久久a久久综合| 久久久www成人免费无遮挡大片| 亚洲免费av在线| 国产真实乱对白精彩久久| 91九色02白丝porn| 国产精品国产三级国产aⅴ入口 | 色综合一个色综合| 日韩欧美中文字幕公布| 日韩av网站在线观看| fc2成人免费人成在线观看播放| 国产日韩欧美电影| 毛片基地黄久久久久久天堂| 欧美精品在欧美一区二区少妇| 亚洲乱码一区二区三区在线观看| 国产一区二区三区观看| 精品日韩成人av| 亚洲福利视频一区二区| 欧美日韩在线播放一区| 日本一区二区三区免费乱视频| 韩国欧美国产一区| 欧美一级一区二区| 美女脱光内衣内裤视频久久网站 | 色婷婷久久久久swag精品| 欧美国产视频在线| 91麻豆swag| 一二三四区精品视频| 欧美影视一区在线| 日韩高清不卡在线| 26uuu精品一区二区在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 成人欧美一区二区三区视频网页| 成人永久aaa| 最新热久久免费视频| 91福利视频久久久久| 三级精品在线观看| 久久老女人爱爱| 蜜臀av性久久久久av蜜臀妖精| 欧美国产综合色视频| 91久久精品一区二区三| 蜜桃视频在线观看一区| 国产三级三级三级精品8ⅰ区| av电影在线观看一区| 午夜精品福利视频网站| 欧美日韩一区二区三区免费看 | 国产欧美视频在线观看| 日本道精品一区二区三区| 天堂va蜜桃一区二区三区漫画版| 欧美久久一区二区| 国产麻豆9l精品三级站| 亚洲免费在线视频| 日韩欧美色综合| 99久久免费国产| 国产高清亚洲一区| 亚洲高清不卡在线观看| 久久久99精品免费观看| 欧美色综合网站| 国产呦精品一区二区三区网站| 久久亚洲综合色| 色激情天天射综合网| 久久精品国产亚洲5555| 亚洲精品国产视频| 国产免费成人在线视频| 欧美精选一区二区| 成人免费视频视频| 久草在线在线精品观看| 亚洲制服丝袜av| 久久精品人人做人人综合| 欧美区视频在线观看| 99v久久综合狠狠综合久久| 精品在线观看视频| 亚洲一线二线三线视频| 日韩一区二区在线观看| 色综合久久88色综合天天免费| 国产在线国偷精品产拍免费yy| 亚洲v中文字幕| 自拍偷拍亚洲激情| 久久新电视剧免费观看| 91精品在线一区二区| 91高清在线观看| 成人免费视频国产在线观看| 亚洲国产日韩av| 综合欧美一区二区三区| 国产精品天美传媒| 国产午夜亚洲精品理论片色戒 | 日韩国产成人精品| 亚洲一区二区中文在线| 中文字幕一区二区三区色视频| 国产欧美一区二区精品秋霞影院| 欧美va亚洲va香蕉在线| 欧美综合色免费| 91小视频免费观看| 国产精品一区二区在线播放| 99久精品国产| 国产成人午夜电影网| 国产精品一区二区在线看| 国产成人av影院| 国产成人av福利| 成人自拍视频在线观看| 丁香五精品蜜臀久久久久99网站| 国内久久精品视频| 日本欧美大码aⅴ在线播放| 国产成人精品亚洲777人妖| 国产激情一区二区三区| 国产老妇另类xxxxx| 亚洲另类中文字| 国产精品视频麻豆| 中文字幕成人在线观看| 国产精品久久夜| 国产美女精品人人做人人爽| 国产一区二区不卡在线| 欧美日韩视频在线观看一区二区三区 | 久久亚洲影视婷婷| 国产日韩精品一区| 欧美日韩一区二区电影| 欧美一区二区私人影院日本| 日韩欧美在线不卡| 国产亚洲制服色| 中文字幕欧美一| 国产女主播视频一区二区| 国产婷婷一区二区| 亚洲日本中文字幕区| 午夜久久久久久电影| 麻豆国产精品视频|