redis 队列推送信息
Redis LTRIM 用于修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。start 和 stop 都是由0开始计数的, 这里的 0 是列表里的第一个元素(表头),1 是第二个元素,以此类推。
例如: LTRIM foobar 0 2 将会对存储在 foobar 的列表进行修剪,只保留列表里的前3个元素。
start 和 end 也可以用负数来表示与表尾的偏移量,比如 -1 表示列表里的最后一个元素, -2 表示倒数第二个,等等。
Redis::rpush('list_queue', json_encode($tmp));
public function Notice($number,$cishu= null){
if ($frequency){
$queue_data = Redis::lrange("list_queue" . $cishu, 0, $number);
Redis::ltrim("list_queue" . $cishu, count($queue_data ), -1);
} else {
$queue_data = Redis::lrange("list_queue", 0, $number);
Redis::ltrim("list_queue", count($queue_data ), -1);
}
// 重新回redis 第二次
$redis_key = "";
$field_key = "";
switch ($type){
case "test":
$redis_key = "list_queue";
$tmp = [
shujushu
];
Redis::rpush($redis_key . '_' . ($frequency + 1), json_encode($tmp));
break;
}
kernel.php
$schedule->command('pos:list_queue--push_number=100 --push_type=test')->everyMinute()->description("test通知")->withoutOverlapping()->sendOutputTo($output);
$schedule->command('pos:list_queue--push_number=100 --push_type=test--push_frequency=1')->everyFiveMinutes()->description("test补推1")->withoutOverlapping()->sendOutputTo($output);