webman 运行一段时间后报错,

kspade

运行一段时间就报错了。但是程序一直正常似乎是定时任务里面的错误,偶尔就会抛出这种错误,程序没死

Workerman\Redis\Exception: Workerman Redis Wait Timeout (600 seconds) in /vendor/workerman/redis/src/Client.php:304
tgbot-php-1  | Stack trace:
tgbot-php-1  | #0 /vendor/workerman/workerman/Events/Event.php(167): Workerman\Redis\Client->Workerman\Redis\{closure}()
tgbot-php-1  | #1 [internal function]: Workerman\Events\Event->timerCallback(-1, 1, Array)
tgbot-php-1  | #2 /vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
tgbot-php-1  | #3 /vendor/workerman/workerman/Worker.php(1629): Workerman\Events\Event->loop()
tgbot-php-1  | #4 /vendor/workerman/workerman/Worker.php(1423): Workerman\Worker::forkOneWorkerForLinux(Object(Workerman\Worker))
tgbot-php-1  | #5 /vendor/workerman/workerman/Worker.php(1397): Workerman\Worker::forkWorkersForLinux()
tgbot-php-1  | #6 /vendor/workerman/workerman/Worker.php(560): Workerman\Worker::forkWorkers()
tgbot-php-1  | #7 /vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
tgbot-php-1  | #8 /vendor/webman/console/src/Commands/StartCommand.php(29): support\App::run()
tgbot-php-1  | #9 /vendor/symfony/console/Command/Command.php(291): Webman\Console\Commands\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
tgbot-php-1  | #10 /vendor/symfony/console/Application.php(1014): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
tgbot-php-1  | #11 /vendor/symfony/console/Application.php(301): Symfony\Component\Console\Application->doRunCommand(Object(Webman\Console\Commands\StartCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
tgbot-php-1  | #12 /vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
tgbot-php-1  | #13 /webman(45): Symfony\Component\Console\Application->run()这里详细描述问题
884 2 1
2个回答

walkor 打赏

用手册里同步方式投递消息

  • kspade 2023-07-13

    是redis 队列的错误吗?

tanhongbin

redis 超时了?不应该呀

  • kspade 2023-07-13

    不清楚是什么原因引起的,反正我只要吧定时任务关闭就不会出现
    或许是我定时任务丢入队列的数据过多。

    定时任务3秒1次,每次请求第三方接口获得大约 300条数据,丢入了队列。

  • walkor 2023-07-13

    异步方式是将消息存储在内存里,然后当进程空闲时将数据发送给redis,如果消息产生的速度大于redis接收速度,或者进程忙于处理其它业务,会导致内存里消息一直挤压,消息积压超过600秒认为投递失败,触发此错误。

  • tanhongbin 2023-07-13

    还的是 老大呀,一下子就明白了

  • kspade 2023-07-13

    牛逼

    就对了,自己一手开发的 一看错误就知道原因

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