jiyis/laravel-nsq

Nsq driver for Laravel Queue

1.0.2 2018-08-01 07:51 UTC

This package is not auto-updated.

Last update: 2024-04-14 05:19:57 UTC


README

NSQ client for laravel

Requirements

Dependency Requirement
PHP >= 7.1.0
Swoole The Newer The Better No longer support PHP5 since 2.0.12

Installation

pecl install swoole
composer require jiyis/laravel-nsq

Usage

Set env

NSQSD_URL=127.0.0.1:4150
NSQLOOKUP_URL=127.0.0.1:4161

# If it is multiple, please separate them with ","
NSQSD_URL=127.0.0.1:4150,127.0.0.1:4250

Create Job

php artisan make:job NsqTestJob

you need set two property. public $topic; public $channel;

class NsqTestJob  implements ShouldQueue
{

    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 
    public $topic = 'test';
    
    public $channel = 'web';

    public function handle()
    {
        $client = $this->job->getCurrentClient();
        $payload = json_decode($this->job->getMessage(), true);
        ...
    }
}

Publish

// the data you want to be publish 
$str = [
    'message' => 'this is a message',
    'user_id' => 1
];
// not supported dispatch
Queue::connection('nsq')->push(new NsqTestJob, $str);

Subscribe

php artisan queue:work nsq --sleep=3 --tries=3 --timeout=500  --job=App\\Jobs\\NsqTestJob