workerman環(huán)境下是否有自身php實現(xiàn)的隊列功能。我想咨詢的并不是依賴redis或其他的服務的方案。而是workerman自己實現(xiàn)的一個服務。
我想要的場景也很簡單,其實就是redis的list中的push功能和blPop命令。
有一個進程會向隊列插入 id,其他的 進程隨時消費獲取id。不能出現(xiàn)重復分配。
裝redis自然是能用,但是有沒有人用workerman實現(xià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);
}
}