androzd / queue-nsq
此包最新版本(v1.0.7)没有可用的许可证信息。
laravel 的 NSQ 包
v1.0.7
2024-04-08 09:00 UTC
Requires
- php: >=7.4
- laravel/framework: ^5.7|6.*|7.*|8.*|9.*|10.*|11.*
Requires (Dev)
- phpunit/phpunit: ~7.0
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 } }