PHP 操作 Beanstalkd 消息队列:连接、生产与消费代码示例

本示例展示如何使用 PHP 连接 Beanstalkd 消息队列,并进行生产和消费操作。

1. 连接 Beanstalkd 服务器

<?php
$beanstalk = new PheanstalkPheanstalk('127.0.0.1');
?>

2. 生产者示例

<?php
// 选择队列 (如果不存在则创建)
$tube = 'test-tube';
$beanstalk->useTube($tube);

// 向队列中添加任务
$jobId = $beanstalk->put(
    "This is a job", // 任务数据
    1024,             // 优先级 (可选)
    0,                // 延迟时间 (可选)
    60                // 任务超时时间 (可选)
);
?>

3. 消费者示例

<?php
// 监听指定队列
$beanstalk->watch($tube);

// 获取任务
$job = $beanstalk->reserve();

// 处理任务数据
// ...

// 删除已完成的任务
$beanstalk->delete($job);
?> 

更多操作方法

  • peekReady(): 查看队列头部任务,但不获取。
  • release(): 释放已获取的任务,使其可被其他消费者处理。
  • bury(): 暂时隐藏任务,使其不被消费者获取。
  • kick(): 将指定数量的 buried 任务重新放入 ready 状态。
  • stats(): 获取队列统计信息。

注意: 以上示例代码需要安装 pheanstalk/pheanstalk PHP 库。

zip 文件大小:6.77KB