支持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