国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman環(huán)境下是否有自己實(shí)現(xiàn)的隊(duì)列功能

augushong

workerman環(huán)境下是否有自身php實(shí)現(xiàn)的隊(duì)列功能。我想咨詢的并不是依賴redis或其他的服務(wù)的方案。而是workerman自己實(shí)現(xiàn)的一個(gè)服務(wù)。
我想要的場(chǎng)景也很簡(jiǎn)單,其實(shí)就是redis的list中的push功能和blPop命令。
有一個(gè)進(jìn)程會(huì)向隊(duì)列插入 id,其他的 進(jìn)程隨時(shí)消費(fèi)獲取id。不能出現(xiàn)重復(fù)分配。

裝redis自然是能用,但是有沒有人用workerman實(shí)現(xiàn)過這個(gè)場(chǎng)景的服務(wù)嗎。

最終想要的效果代碼其實(shí)很簡(jiǎn)單:

<?php
namespace app\common\tools;

class MessageListTools 
{

    public const LIST_KEY = 'message_list';

    public static function getRedis()
    {
        ini_set('default_socket_timeout', -1);
        $redis = new \Redis();
        $redis->connect('127.0.0.1', 6379);

        return $redis;
    }

    public static function push($task_id)
    {
        $redis = self::getRedis();
        $redis->lpush(static::LIST_KEY, $task_id);
        return true;
    }

    public static function pop()
    {
        $redis = self::getRedis();
        return $redis->blPop(static::LIST_KEY,0);
    }
}
1310 1 0
1個(gè)回答

智佳思遠(yuǎn)

使用數(shù)組可以實(shí)現(xiàn)redis的list,但是它是內(nèi)存變量,重啟數(shù)據(jù)就沒了,適合隊(duì)列里存儲(chǔ)不重要可丟失的數(shù)據(jù)

  • augushong 2023-01-14

    需要多進(jìn)程,多client。其實(shí)就是想要個(gè)很小很小的隊(duì)列server

  • efnic 2023-01-14

    php的標(biāo)準(zhǔn)庫(kù)里面有個(gè)數(shù)據(jù)結(jié)構(gòu)適合你SplQueue

  • augushong 2023-01-16

    好像挺好的。這樣自己只要實(shí)現(xiàn)一個(gè)小的多進(jìn)程通信服務(wù)就行了。

年代過于久遠(yuǎn),無法發(fā)表回答
??