使用 workerman-redis 在这个方法报错,workman的php其余环境应该是有的
// Add socket to global event loop waiting connection is successfully established or faild.
Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'checkConnection'));
[Error]
Call to a member function add() on null
本地是windows64 php 7.4.3
线上也是 linux centos7 php7.4.30
用的框架是tp6 后面的打印是add里面的参数
这个开源项目在这个环境下都能正常运行
但是这个还是会有问题
workerman/redis 只能在workerman的运行环境使用
大佬,意思是使用前提还需要我在这个框架安装workman的运行环境的意思吗?还是我只能单独类似下个webman,再在其中使用这个workman/redis呢
tp里直接用redis扩展
好的,谢了,大佬可以多问一个小问题吗就是截图里面追加的那个,就该有的环境什么的都有的话,执行workman的那个redis还是会有点问题,或者说是不是需要分开用, tp用 redis, workman需要单独启动
workerman运行环境,是指执行
php start.php start
启动的workerman相关进程的内部运行环境,里面包含了workerman/redis执行依赖的变量、类实例等,而且这些只有在workerman进程里能访问到。执行
php think worker:queue
并没有启动workerman,仅仅是引用了workerman/redis类文件,也没workerman/redis依赖的workerman环境,无法使用workerman/redis。还有workerman/redis 手册有讲,除非是在workerman环境里需要使用subscribe/pSubscribe异步订阅,否则都用redis扩展。你在tp更应该使用redis扩展才对。
嗯嗯,好的,谢啦大佬,明白了