Link Search Menu Expand Document

支持Enqueue

Enqueue 是一个 MIT 许可的开源项目,它的持续开发完全得益于社区和我们客户的支持。如果您想加入他们,请考虑:


快速指南

enqueue/laravel-queue 是用于Enqueue的消息队列桥接。您可以使用建立在 queue-interop 之上的所有传输,包括Enqueue支持的所有传输。

该包允许您以laravel的方式来使用队列交互传输,并集成 Enqueue简单客户端

注意: 此代码的一部分最初是作为laravel/framework#20148的 PR 提出的。它在没有太多解释的情况下被关闭,所以我决定将它作为一个独立的包开源。

安装

您必须安装 enqueue/laravel-queue 包和受支持的传输之一

$ composer require enqueue/laravel-queue enqueue/fs

注册服务提供器

<?php

// config/app.php

return [
    'providers' => [
        Enqueue\LaravelQueue\EnqueueServiceProvider::class,
    ],
];

Laravel队列

在这个阶段,你已经可以使用laravel 队列了。

Enqueue简单客户端

如果你想在你的 Laravel 应用中使用 enqueue/simple-client,你还需要执行额外的步骤。除了已安装的内容外,您还必须安装客户端库:

$ composer require enqueue/simple-client

创建 config/enqueue.php 文件并将客户端配置放在那里。 这是它的示例:

<?php

// config/enqueue.php

return [
    'client' => [
        'transport' => [
            'default' => 'file://'.realpath(__DIR__.'/../storage/enqueue')
        ],
        'client' => [
              'router_topic'             => 'default',
              'router_queue'             => 'default',
              'default_queue'  => 'default',
        ],
    ],
];

注册处理器:

<?php
use Enqueue\SimpleClient\SimpleClient;
use Interop\Queue\Message;
use Interop\Queue\Processor;

$app->resolving(SimpleClient::class, function (SimpleClient $client, $app) {
    $client->bindTopic('enqueue_test', function(Message $message) {
        // 在这里做事

        return Processor::ACK;
    });

    return $client;
});

发送信息:

<?php
use Enqueue\SimpleClient\SimpleClient;

/** @var SimpleClient $client */
$client = \App::make(SimpleClient::class);

$client->sendEvent('enqueue_test', 'The message');

消费消息:

$ php artisan enqueue:consume -vvv --setup-broker

返回首页