1

我一直在使用 Laravel 框架,最近刚刚开始使用 Laravel 内置的 IronMQ 支持来实现队列。

从 Laravel文档中可以很容易地了解如何将消息推送到队列,然后在Iron.io上设置订阅者并将队列推送到这些订阅者。但是我想将 IronMQ 用作拉取队列。我没有看到任何关于如何使用 Laravel 的内置方法从指定队列中提取消息的迹象。

在 IronMQ 站点上,他们列出了所有与拉取队列实施相关的端点。

前任:/projects/{Project ID}/queues/{Queue Name}/messages

在 Laravel 的 IronMQ 包中,我看到了似乎适用于这些端点的方法:

/**
 * Peek Messages on a Queue
 * Peeking at a queue returns the next messages on the queue, but it does not reserve them.
 *
 * @param string $queue_name
 * @return object|null  message or null if queue is empty
 */
public function peekMessage($queue_name) {
    $messages = $this->peekMessages($queue_name, 1);
    if ($messages == null) {
        return null;
    } else {
        return $messages[0];
    }
}

但是,我没有看到 Laravel 对此有任何支持。我希望能够按照以下方式做一些事情:

$message = Queue::peek();

它将从指定队列返回下一条消息,等等。

有没有办法通过 Laravel 的内置支持来做到这一点,但没有记录在案?

谢谢!

编辑:

我已经看过有关通过 Laravel 使用Daemon Workers的文档,但是我想通过 cron 作业自己处理队列。

4

1 回答 1

1

您可以尝试使用 IronMQ 类而不是 laravel Queue 类:

$ironmq = new \IronMQ(array(
    'token' => Config::get('queue.connections.iron.token', 'xxx'),
    'project_id' => Config::get('queue.connections.iron.project', 'xxx')
));
$ironmq->getMessage($queue_name);

IronMQ PHP 库

于 2014-12-25T04:58:31.357 回答