webman-console 自定义命令不能使用 Workerman 的环境吗?

pader

在自定义命令里好像不能使用 redis-queue 来推送消息队列。

我试了一下会报以下错误

PHP Fatal error:  Uncaught Error: Call to a member function add() on null in /home/pader/mix/code/webman/vendor/workerman/workerman/Connection/AsyncTcpConnection.php:213
Stack trace:
#0 /home/pader/mix/code/webman/vendor/workerman/redis/src/Client.php(444): Workerman\Connection\AsyncTcpConnection->connect()
#1 /home/pader/mix/code/webman/vendor/workerman/redis/src/Client.php(275): Workerman\Redis\Client->connect()
#2 /home/pader/mix/code/webman/vendor/workerman/redis-queue/src/Client.php(73): Workerman\Redis\Client->__construct()
#3 /home/pader/mix/code/webman/vendor/webman/redis-queue/src/Client.php(45): Workerman\RedisQueue\Client->__construct()
#4 /home/pader/mix/code/webman/vendor/webman/redis-queue/src/Client.php(58): Webman\RedisQueue\Client::connection()
#5 /home/pader/mix/code/webman/app/command/TestHelloCommand.php(41): Webman\RedisQueue\Client::__callStatic()
#6 /home/pader/mix/code/webman/vendor/symfony/console/Command/Command.php(291): app\command\TestHelloCommand->execute()
#7 /home/pader/mix/code/webman/vendor/symfony/console/Application.php(989): Symfony\Component\Console\Command\Command->run()
#8 /home/pader/mix/code/webman/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand()
#9 /home/pader/mix/code/webman/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun()
#10 /home/pader/mix/code/webman/webman(14): Symfony\Component\Console\Application->run()
#11 {main}
  thrown in /home/pader/mix/code/webman/vendor/workerman/workerman/Connection/AsyncTcpConnection.php on line 213

其它需要依赖 Workerman 的异步环境的东西,好像都不行。。
那这样好像就没啥用了。。

1028 2 0
2个回答

admin

asyncTcpConnect必须在worker中使用,不能单独拿来直接在php中使用

看这个https://www.workerman.net/q/4392

  • pader 2022-02-23

    是啊,问题是 webman 本身就是基于 workerman 做的啊,结果自定义命令的环境不在 workerman 中。。

walkor

workerman内核的所有类必须在workerman的运行环境才能用。命令行不是workerman的运行环境,无法使用。

  • pader 2022-02-23

    好吧。

  • admin 2022-02-23

    walkor大佬,有两个问题,1 :我的账号下有 两条你手动删除的提醒(mysql删除),但是提醒还在,点进去404,强迫症, 2: 希望能查看自己发过的帖子,想找以前的帖子

  • walkor 2022-02-23

    截图 这里点击标记已读。
    发过的帖子后面会加上

  • walkor 2022-02-23

    发过的帖子已经加上了

年代过于久远,无法发表回答
🔝