关于PHP Warning: Swoole\Server::start(): task[73] has expired.

问题描述:

  • swoole版本:swoole-v4.2.11

  • 使用方式:http://rango.swoole.com/archives/265

  • 测试的时候偶现报警:PHP Warning: Swoole\Server::start(): task[10] has expired.

排查思路

全局搜了一下源码发现了在php_swoole_onFinish方法中有类似下面的这句话 swWarn("task[%d] has expired.", task_id); 所以我猜测是 server服务在finish的时候发现task_id已经丢失了(比如连接断掉了),当然这个需要验证的(doing),请教一下各位有没有其他的可能?

谢谢!

2019-01-15 18:58
0
0

郭大侠 - QQ:348755783

赞同来自:

finish设计的不好 不能带workid , finish 只是消息传递到 最新分配任务的 worker。

这样就有问题了。 建议不要用 finish, 使用sendMessage,将task的消息 传递给 Worker进程

2019-01-27 16:16

要回复问题请先登录注册