Karp 的技术博客

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

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

抱着试试看的心态. 升级swoole4.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

php swoole

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2019年12月16日 02:01
3

目录

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