LEN

Swoole 踩坑 4.2.11低版本不抛错 执行不同静态方法一定次数 进程异常退出 `PHP Deprecated: Non-static method `
很久之前运维同学通知我 线上服务器 产生大量 core.15.... 文件 磁盘快占满了 我没在意.今天发现线上有...
扫描右侧二维码阅读全文
16
2019/12

Swoole 踩坑 4.2.11低版本不抛错 执行不同静态方法一定次数 进程异常退出 `PHP Deprecated: Non-static method `

很久之前运维同学通知我 线上服务器 产生大量 core.15.... 文件 磁盘快占满了 我没在意.
今天发现线上有个服务的否个进程运行出了问题.找了一下午问题. 都没找明白 .

想起每次找swoole官方回复都是 版本太低, 先升级到最新版本.

抱着试试看的心态. 升级swoole 到 4.4.12 在运行发现如下错误:

    PHP Deprecated:  Non-static method Controller\Test::func() should not be called statically in /data/application/QuantPlatform/script/src/Controller/Test.php on line 41
    PHP Deprecated:  Swoole\Timer::swoole_timer_tick() expects parameter 2 to be a valid callback, non-static method Controller\Test::func() should not be called statically in /data/application//script/src/Controller/Test.php on line 41

实际上就是我在使用 swoole_timer_tick 定时器时 2参数回调方法 是不是静态方法导致的问题.

core dump 可能也能找出问题所在 但 对我有学习成本.
下次再有bug 第一时间更新版本.

记录下现象:

  1. 定时器中调用非静态方法 无抛错
  2. 调用外部模型类或第三方类 前3次调用都没有问题.
  3. 调用第四个不同的类时 异常退出.

     {"Worker Error":0,"pid":4236,"exitCode":0,"signal":11}
    

线上swoole 4.2.11 版本 无抛错 进程仅异常退出.
swoole 4.4.12 版本 抛错提示 Non-static method

最后修改:2019 年 12 月 16 日 03 : 32 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论