maxzhang666/laravel-nsq

此包的最新版本(dev-master)没有可用的许可信息。

Laravel NSQ

dev-master 2023-06-20 07:37 UTC

This package is auto-updated.

Last update: 2024-09-20 10:08:58 UTC


README

使用 Laravel API 的 Laravel 包,用于 NSQ 队列管理器

依赖函数

pcntl_sigprocmask

安装

首先,使用 Composer 需求此包

composer require merkeleon/laravel-nsq

  1. 如 Laravel 手册所述,添加新的队列任务

php artisan make:job <JobName> 按照 Laravel 规则编辑此文件

  1. 将队列驱动设置为 NSQ

QUEUE_DRIVER=nsq

  1. 设置 NSQ 服务器环境选项

NSQSD_URL=127.0.0.1:4150 Nsq 守护进程的 IP 和端口

NSQLOOKUP_URL=127.0.0.1:4161 Nsq 查找守护进程的 IP 和端口

如果需要使用多个服务器,请使用逗号分隔符

NSQSD_URL=127.0.0.1:4150,127.0.0.1:4151,127.0.0.1:4152

示例

作业类

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Config;

class CoolJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct(...$args)
    {
        $this->queue = 'my-cool-jobs';
        
        // $args code
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // do the job
    }
}

代码某处

<?php

... code ...

// Push timed task in the queue
CoolJob::dispatch(...$any_args);

... code ...