定制 boxphp/queue 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

boxphp/queue

Composer 安装命令:

composer require boxphp/queue

包简介

BoxPHP Queue - Redis Queue Implementation

README 文档

README

BoxPHP 队列包 - 基于 Redis 的队列实现

安装

composer require boxphp/queue

前置要求

  • boxphp/redis

使用

基础使用

use BoxPHP\Queue\Queue\RedisQueue;
use BoxPHP\Redis\Redis\RedisConnection;

$redis = new RedisConnection(['host' => '127.0.0.1', 'port' => 6379]);
$redis->connect();

$queue = new RedisQueue($redis, 'myapp');

// 推送任务
$queue->push(['job' => 'SendEmail', 'to' => 'user@example.com']);
$queue->push(['job' => 'ProcessImage', 'id' => 123]);

// 弹出任务
$job = $queue->pop();
if ($job) {
    // 处理任务
    processJob($job);
}

// 查看队列大小
echo $queue->size(); // 2

任务优先级

// 高优先级任务(推送到队列头部)
$queue->pushHigh(['job' => 'UrgentTask']);

// 普通任务
$queue->push(['job' => 'NormalTask']);

// 低优先级任务(推送到队列尾部)
$queue->pushLow(['job' => 'BackgroundTask']);

延迟任务

// 30秒后执行
$queue->delay(30, ['job' => 'DelayedTask']);

// 5分钟后执行
$queue->delay(300, ['job' => 'LaterTask']);

任务预览

// 查看但不移除任务
$jobs = $queue->peek(0, 10); // 查看前10个任务

队列工作者

use BoxPHP\Queue\Queue\RedisQueue;

$queue = new RedisQueue($redis, 'myapp');

while (true) {
    $job = $queue->pop();
    
    if ($job === null) {
        sleep(1); // 队列为空,等待1秒
        continue;
    }
    
    try {
        // 处理任务
        processJob($job);
        
        // 处理成功,确认
        $queue->ack();
    } catch (\Exception $e) {
        // 处理失败,重新入队
        $queue->nack($job);
    }
}

依赖

  • PHP >= 8.1
  • boxphp/core ^1.0
  • boxphp/redis ^1.0

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固