亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

FastCacheQueue

EasySwoole FastCache組件在>= 1.2.1的時候新增類似· beanstalkd消息隊列 ·特性。

  • 可以創建多個queue
  • 支持延遲投遞
  • 任務超時恢復執行
  • 任務重發執行
  • 任務最大重發次數
  • 支持putJob、delayJob、releaseJob、reserveJob、buryJob、kickJob等命令

基本使用

FastCacheQueue依托于FastCache,具體安裝請查看FastCache

服務注冊

更新后,EasySwoole\FastCache\CacheProcessConfig類多出以下方法

/** 設置進程最大內存 默認512M */
public function setMaxMem(string $maxMem): void
/** 設置消息隊列保留時間 默認60s (取出任務后沒有及時確認會重新放回隊列) */
public function setQueueReserveTime(int $queueReserveTime): void
/** 設置消息隊列最大重發次數 默認10 達到次數后重發將會被丟棄 */
public function setQueueMaxReleaseTimes(int $queueMaxReleaseTimes): void

開始使用

下文示例代碼的Job和Cache都使用以下命名空間

use EasySwoole\FastCache\Cache;
use EasySwoole\FastCache\Job;

投遞任務

投遞成功之后 將會返回該任務的jobId。

沒有失敗情況,除非fastCache注冊注冊失敗。

$job = new Job();
$job->setData("siam"); // 任意類型數據
$job->setQueue("siam_queue");
$jobId = Cache::getInstance()->putJob($job);
var_dump($jobId);

取出任務

可以開啟自定義進程當消費者,循環監聽隊列,執行任務處理。

注意:任務執行完成一定要有一個結果。要么刪除該任務,要么重發。否則當任務取出一定時間后(默認60s)會自動放回隊列中。

$job = Cache::getInstance()->getJob('siam_queue');// Job對象或者null
if ($job === null){
    echo "沒有任務\n";
}else{
    // 執行業務邏輯
    var_dump($job);
    // 執行完了要刪除或者重發,否則超時會自動重發
    Cache::getInstance()->deleteJob($job);
}

清空ready任務隊列


 var_dump(Cache::getInstance()->flushReadyJobQueue('siam_queue'));

 var_dump(Cache::getInstance()->jobQueueSize('siam_queue'));

延遲執行任務

$job = new Job();
$job->setData("siam");
$job->setQueue("siam_queue_delay");
$job->setDelay(5);// 延時5s
$jobId = Cache::getInstance()->putJob($job);
var_dump($jobId);
// 馬上取會失敗 隔5s取才成功
$job = Cache::getInstance()->getJob('siam_queue_delay');
var_dump($job);

刪除任務

可以是由getJob取出的對象,也可以自己聲明Job對象,傳入JobId來刪除。

$job = new Job();
$job->setJobId(1);
$job->setQueue('siam_queue_delay');
Cache::getInstance()->deleteJob($job);

任務重發

任務執行失敗,或者某些場景需要重新執行,則可以重發。

重發時,可以指定是否延遲執行。

// get出來的任務執行失敗可以重發
$job = new Job();
$job->setData("siam");
$job->setQueue("siam_queue");
$jobId = Cache::getInstance()->putJob($job);

$job = Cache::getInstance()->getJob('siam_queue');

if ($job === null){
    echo "沒有任務\n";
}else{
    // 執行業務邏輯
    $doRes = false;
    if (!$doRes){
        // 業務邏輯失敗,需要重發  
        // 如果延遲隊列需要馬上重發,在這里需要清空delay屬性
        // $job->setDelay(0);
        // 如果普通隊列需要延遲重發,則設置delay屬性
        // $job->setDelay(5);
        $res = Cache::getInstance()->releaseJob($job);
        var_dump($res);
    }else{
        // 執行完了要刪除或者重發,否則超時會自動重發
        Cache::getInstance()->deleteJob($job);
    }
}

返回現在有什么隊列

$queues = Cache::getInstance()->jobQueues();
var_dump($queues);

返回某個隊列的長度

$queueSize = Cache::getInstance()->jobQueueSize("siam_queue");
$queueSize2 = Cache::getInstance()->jobQueueSize("siam_queue_delay");
var_dump($queueSize);
var_dump($queueSize2);

清空隊列 可指定名稱

// 清空全部
$res = Cache::getInstance()->flushJobQueue();
var_dump($res);

// 清空siam_queue隊列
$res = Cache::getInstance()->flushJobQueue('siam_queue');
var_dump($res);

將任務改為延遲狀態

//添加任務
$job = new Job();
$job->setData("LuffyQAQ");
$job->setQueue("LuffyQAQ_queue_delay");
$jobId = Cache::getInstance()->putJob($job);

//方法一 直接傳入jobId
$job->setJobId($jobId);
$job->setDelay(30);
var_dump(Cache::getInstance()->delayJob($job));

//方法二 取出任務
$job = Cache::getInstance()->getJob('LuffyQAQ_queue_delay');
$job->setDelay(30);
var_dump(Cache::getInstance()->delayJob($job));

//使用jobQueueSize查看隊列長度
$queueSize = Cache::getInstance()->jobQueueSize("LuffyQAQ_queue_delay");
var_dump($queueSize);

從延遲執行隊列中拿取

//傳入隊列名
var_dump(Cache::getInstance()->getDelayJob('LuffyQAQ_queue_delay'));

清空delay任務隊列


 var_dump(Cache::getInstance()->flushDelayJobQueue('LuffyQAQ_queue_delay'));

 var_dump(Cache::getInstance()->jobQueueSize('LuffyQAQ_queue_delay'));

將任務改為保留狀態

//添加任務
$job = new Job();
$job->setData("LuffyQAQ");
$job->setQueue("LuffyQAQ_queue_reserve");
$jobId = Cache::getInstance()->putJob($job);

//方法一 直接傳入jobId
$job->setJobId($jobId);
var_dump(Cache::getInstance()->reserveJob($job));

//方法二 取出任務
$job = Cache::getInstance()->getJob('LuffyQAQ_queue_reserve');
var_dump(Cache::getInstance()->reserveJob($job));

//使用jobQueueSize查看隊列長度
$queueSize = Cache::getInstance()->jobQueueSize("LuffyQAQ_queue_reserve");
var_dump($queueSize);

從保留隊列中拿取

//傳入隊列名
var_dump(Cache::getInstance()->getReserveJob('LuffyQAQ_queue_reserve'));

清空reserve任務隊列


 var_dump(Cache::getInstance()->flushReserveJobQueue('LuffyQAQ_queue_reserve'));

 var_dump(Cache::getInstance()->jobQueueSize('LuffyQAQ_queue_reserve'));

將任務改為埋藏狀態

$job = new Job();
$job->setQueue('LuffyQAQ_queue_bury');
$job->setData('LuffyQAQ');
$jobId = Cache::getInstance()->putJob($job);
$job->setJobId($jobId);

var_dump(Cache::getInstance()->buryJob($job));

//使用jobQueueSize查看隊列長度
$queueSize = Cache::getInstance()->jobQueueSize("LuffyQAQ_queue_bury");
var_dump($queueSize);

從埋藏隊列中拿取

//傳入隊列名
var_dump(Cache::getInstance()->getBuryJob('LuffyQAQ_queue_bury'));

將埋藏隊列任務恢復到ready中


var_dump(Cache::getInstance()->kickJob($job));

清空bury任務隊列


 var_dump(Cache::getInstance()->flushBuryJobQueue('LuffyQAQ_queue_bury'));

 var_dump(Cache::getInstance()->jobQueueSize('LuffyQAQ_queue_bury'));
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    欧美一区二区三区另类| 狠狠色狠狠色综合人人| 在线看视频不卡| 欧美三区在线| 免费亚洲网站| 牛人盗摄一区二区三区视频| 欧美一区三区二区在线观看| 欧美韩日精品| 91九色蝌蚪成人| 一区二区精品国产| 久久久久久夜| 亚洲一区二区三区精品动漫| 亚洲精选成人| 欧美一二三区| 亚洲在线观看| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 天堂√在线观看一区二区| 在线日韩电影| 美媛馆国产精品一区二区| 亚洲精品系列| 日韩理论片在线观看| 亚洲欧洲日本国产| 日本在线免费观看一区| 国产一区二区三区四区hd| 国产欧美日韩在线播放| 国产精品v一区二区三区| 国产精品sss| 亚洲美女视频在线免费观看| 久精品国产欧美| 国产亚洲欧美另类一区二区三区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 久久福利电影| 中文精品视频一区二区在线观看| 99在线视频免费观看| 影音先锋欧美在线| 久久精品国产综合精品| 99视频+国产日韩欧美| 在线精品亚洲一区二区| 国产日韩久久| 久久美女性网| 亚洲欧洲另类| 欧美日韩专区| 伊人色综合影院| 日韩av影视| 国产精品一区二区在线观看| 一本色道久久综合亚洲二区三区| 亚洲国产精品日韩| 九九99玖玖| 国产精品大全| 久久婷婷国产综合尤物精品| 欧美视频不卡| 欧美日韩国产精品一卡| 日本不卡二区| 欧美精品七区| 另类视频在线观看+1080p| 蜜桃av一区| 亚洲一区二区三区免费在线观看| 伊人成人在线| 欧美特黄视频| 韩国精品一区二区三区| 欧美激情无毛| 欧美欧美天天天天操| 一区二区在线观| 亚洲一区精彩视频| 亚洲精品在线免费| 色婷婷精品国产一区二区三区| 鲁丝一区鲁丝二区鲁丝三区| 国产一区二区三区免费不卡| 国产乱人伦精品一区二区| 成人免费看片网址| 国产一级特黄a大片99| 精品不卡一区二区三区| 免费看成人av| 亚洲一区二区三区加勒比| 日韩一本精品| 欧美久久电影| 亚洲狼人精品一区二区三区| 99xxxx成人网| 久久欧美肥婆一二区| 97超碰最新| 蜜桃久久精品乱码一区二区 | 99精品国产在热久久婷婷| 激情综合在线| 亚洲一区自拍| 国产综合 伊人色| 好看的日韩精品视频在线| 欧美国产二区| 亚洲欧美综合一区| 一本色道精品久久一区二区三区| 欧美资源在线| 欧美精品一区三区在线观看| 视频一区不卡| 亚洲一级影院| 99精品99久久久久久宅男| 欧美xxxx黑人又粗又长精品| 天堂一区二区三区| 亚洲激情亚洲| 国产专区一区二区三区| 杨幂一区欧美专区| 亚洲精品女人| 91久久精品国产91久久性色tv| 精品无码久久久久国产| 亚洲二区自拍| 亚洲影院免费| 美国av一区二区三区| 欧美一区在线看| 欧美综合二区| 亚洲成人18| 亚洲综合社区| 亚洲天堂电影网| 新67194成人永久网站| 蜜桃传媒一区二区| 激情婷婷久久| 欧美成人在线免费观看| 亚洲精品日本| 色一情一区二区三区四区| 亚洲免费成人| 日韩精品电影网站| 久久福利影视| 午夜久久黄色| 久久99国产精品| 国产精品久久777777毛茸茸| 久久综合久久久| 性一交一乱一区二区洋洋av| 亚洲日本欧美在线| 99一区二区| 99www免费人成精品| 日韩久久在线| 国产一级精品aaaaa看| 亚洲国产日韩欧美一区二区三区| 久久国产日韩欧美| 国产欧美综合一区二区三区| 亚洲成人第一| 国产麻豆一区二区三区在线观看| 伊人影院久久| 一本一道久久a久久精品综合 | 久久久福利视频| 蜜桃精品久久久久久久免费影院| 欧美va亚洲va日韩∨a综合色| 国产精品中出一区二区三区| 日韩香蕉视频| 欧美久久一区| 在线免费观看成人| 日韩欧美亚洲在线| 精品国产二区在线| 99在线看视频| 久久精品日产第一区二区| 在线看片一区| 韩国在线一区| 欧美日韩另类综合| 中文字幕日韩一区二区三区| 欧美lavv| 久久久久久久久久久久久9999| 美女久久一区| 香蕉视频成人在线观看| 亚洲精品日韩精品| 欧美日韩亚洲一区三区 | 日韩不卡av| 老牛影视免费一区二区| 俄罗斯精品一区二区三区| 免费亚洲婷婷| 久久国产一二区| 久久精品91| 99免费在线观看视频| 91九色视频在线观看| 91入口在线观看| 久久欧美肥婆一二区| 美女国产一区| 国产精品国产亚洲精品看不卡15 | 欧美在线播放一区| 色噜噜狠狠色综合网| 天堂√在线观看一区二区| 四虎影院一区二区三区| 午夜精品视频在线观看一区二区| 日韩电影免费观看在| 日韩中文字幕一区二区| 亚洲一区在线免费| 欧美激情五月| 国产一区二区三区久久久久久久久 | 精品视频一区二区| 免费在线成人av| 亚洲一区二区在线观| 欧美三区美女| 久久精品一二三区| 久久久久九九九| 亚洲综合欧美日韩| 亚洲精品裸体| 国产精品swag| 亚洲一区二区免费视频软件合集 | 国产欧美在线| 91传媒在线免费观看| 欧美成人dvd在线视频| 亚洲精品乱码久久久久久蜜桃91 | 欧美二区三区在线| 国产精品国产精品| 5566av亚洲| 亚洲欧洲久久| 国产精品免费一区二区三区在线观看| 可以看av的网站久久看| 精品一区国产|