androzd/queue-nsq
androzd/queue-nsq
Laravel package for NSQ. This package NOT use laravel's api.
Installation
First, require the package using Composer:
composer require androzd/queue-nsq
Configuration
You can configure with env variables.
If you need more options to replace, you can publish and edit config file:
php artisan vendor:publish --provider="Androzd\QueueNsq\QueuesServiceProvider" --tag="config"
Produce new Nsq message:
<?php
use Androzd\QueueNsq\Actions\ProduceMessageToTopic;
$message = json_encode(['id' => 'example message']);
$topic = 'example-topic';
$produceAction = new ProduceMessageToTopic();
$produceAction($message, $topic);
Produce new deferred Nsq message:
<?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
Listen Nsq topic:
<?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
}
}
Related Packages
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
634,760,849
9,707
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
408,553,772
609
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
387,976,821
4,658