merkeleon/phpnsq
Composer 安装命令:
composer require merkeleon/phpnsq
包简介
PHP Client for nsq
README 文档
README
Install
composer require okstuff/phpnsq
Subscribe one topic and channel
php examples/console phpnsq:sub <topic> <channel>
Notice
Before try this, you should install nsq by yourself.
Examples
- Publish
<?php require __DIR__ . "/../vendor/autoload.php"; use OkStuff\PhpNsq\Message\Message; use OkStuff\PhpNsq\PhpNsq; $config = require __DIR__ . '/../src/config/phpnsq.php'; $phpnsq = new PhpNsq($config); //normal publish $message = new Message(); $message->setBody("Hello nsq."); $phpnsq->setTopic("sample_topic")->publish(json_encode($message)); //defered publish $message = [ "title" => "hello", "content" => "this is a nsq php client.", ]; $phpnsq->setTopic("sample_topic")->publishDefer(json_encode($message), 10); //multiple publish $messages = [ "Hello, I am nsq client", "There are so many libraries developed by PHP", "Oh, no, PHP is not so good and slowly", ]; $phpnsq->setTopic("sample_topic")->publishMulti(...$messages);
- Subscribe
<?php use OkStuff\PhpNsq\Message\Message; use OkStuff\PhpNsq\Command\Base; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class Subscribe extends Base { CONST COMMAND_NAME = 'phpnsq:sub'; public function configure() { $this->setName(self::COMMAND_NAME) ->addArgument("topic", InputArgument::REQUIRED, "The topic you want to subscribe") ->addArgument("channel", InputArgument::REQUIRED, "The channel you want to subscribe") ->setDescription('subscribe new notification.') ->setHelp("This command allows you to subscribe notifications..."); } public function execute(InputInterface $input, OutputInterface $output) { $phpnsq = self::$phpnsq; $phpnsq->setTopic($input->getArgument("topic")) ->setChannel($input->getArgument("channel")) ->subscribe($this, function (Message $message) use ($phpnsq, $output) { $phpnsq->getLogger()->info("READ", $message); }); $this->addPeriodicTimer(5, function () use ($output) { $memory = memory_get_usage() / 1024; $formatted = number_format($memory, 3) . 'K'; $output->writeln("############ Current memory usage: {$formatted} ############"); }); $this->runLoop(); } }
- Console
#!/usr/bin/env php <?php require __DIR__.'/../vendor/autoload.php'; use Symfony\Component\Console\Application; //use OkStuff\PhpNsq\Command\Subscribe; require __DIR__.'/subscribe.php'; $application = new Application(); $config = require __DIR__.'/../src/config/phpnsq.php'; $application->add(new Subscribe($config)); $application->run();
merkeleon/phpnsq 适用场景与选型建议
merkeleon/phpnsq 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.27k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 04 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「queue」 「nsq」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 merkeleon/phpnsq 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 merkeleon/phpnsq 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 merkeleon/phpnsq 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
统计信息
- 总下载量: 3.27k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-04-18