androzd/queue-nsq

此包最新版本(v1.0.7)没有可用的许可证信息。

laravel 的 NSQ 包

v1.0.7 2024-04-08 09:00 UTC

This package is auto-updated.

Last update: 2024-09-10 10:13:15 UTC


README

Laravel 的 NSQ 包。此包不使用 Laravel 的 API。

安装

首先,使用 Composer 需要这个包

composer require androzd/queue-nsq

配置

您可以使用环境变量进行配置。

如果您需要更多选项来替换,您可以发布并编辑配置文件

php artisan vendor:publish --provider="Androzd\QueueNsq\QueuesServiceProvider" --tag="config"

生产新的 Nsq 消息

<?php

use Androzd\QueueNsq\Actions\ProduceMessageToTopic;

$message = json_encode(['id' => 'example message']);
$topic = 'example-topic';

$produceAction = new ProduceMessageToTopic();
$produceAction($message, $topic);

生产新的延迟 Nsq 消息

<?php

use Androzd\QueueNsq\Actions\ProduceDeferredMessageToTopic;

$message = json_encode(['id' => 'example message']);
$topic = 'example-topic';

$produceDeferredAction = new ProduceDeferredMessageToTopic();
$produceDeferredAction($message, $topic, 10_000);//deferred time in ms

监听 Nsq 主题

<?php

use Androzd\QueueNsq\Console\BaseConsumer;

class ExampleTopic extends BaseConsumer
{
    protected $signature = 'queue-work:example_topic';

    public function getTopic(): string
    {
        return 'example-topic';
    }

    public function process(NsqMessage $nsqMessage, $bev)
    {
        $payload = json_decode($nsqMessage->payload);
        // ... your code
    }
}