• 自定义进程实现redis订阅
    • 实现代码

    自定义进程实现redis订阅

    实现代码

    1. <?php
    2. /**
    3. * Created by PhpStorm.
    4. * User: Tioncico
    5. * Date: 2018/10/18 0018
    6. * Time: 10:28
    7. */
    8. namespace App\Process;
    9. use EasySwoole\Component\Process\AbstractProcess;
    10. use Swoole\Process;
    11. class Subscribe extends AbstractProcess
    12. {
    13. public function run($arg)
    14. {
    15. // TODO: Implement run() method.
    16. $redis = new \Redis();//此处为伪代码,请自己建立连接或者维护
    17. $redis->connect('127.0.0.1');
    18. $redis->subscribe(['ch1'],function (){
    19. var_dump(func_get_args());
    20. });
    21. }
    22. public function onShutDown()
    23. {
    24. // TODO: Implement onShutDown() method.
    25. }
    26. public function onReceive(string $str, ...$args)
    27. {
    28. // TODO: Implement onReceive() method.
    29. }
    30. }

    接下来,需要做的事情,就是到EasySwooleEvent.php的主服务创建事件中,注册该进程即可。

    1. use App\Process;
    2. use EasySwoole\Core\Swoole\Process\ProcessManager;
    3. ServerManager::getInstance()->getSwooleServer()->addProcess((new Subscribe('sub'))->getProcess());