hhxsv5 / laravel-s

LaravelS is an out-of-the-box adapter between Laravel/Lumen and Swoole.
MIT License
3.84k stars 475 forks source link

使用laravelS 在毫秒定时器中定时分发任务,系统运行一段时间后分发task任务不执行 #346

Open yangzai929 opened 3 years ago

yangzai929 commented 3 years ago
  1. Your software version (Screenshot of your startup)

| Component | Version | +--------------------------------+---------+ | PHP | 7.4.8 | | Swoole | 4.4.20 | | LaravelS | 3.7.17 | | Laravel Framework [production] | 5.5.50 |

  1. Detail description about this issue(error/log) task 任务停止工作

  2. Some reproducible code blocks and steps laravels.php 配置如下 image 定时器没1000毫秒执行一次,如下 image

taks任务停止执行时 stats() 方法放回如下: image

服务器配置为为8核32G,监测到task 不执行时,机器内存占用大概40% cpu 不到10%,api接口访问正常,从stats()返回可以看到,有3个task 在排队,475和task 进程是空闲的。

hhxsv5 commented 3 years ago

奇怪,stats()方法没有返回task_worker_num。看看swoole日志有什么内容?

yangzai929 commented 3 years ago

奇怪,stats()方法没有返回task_worker_num。看看swoole日志有什么内容? 我看swoole 官网日志 要 swoole版本>= v4.5.7 才有 task_worker_num 呢 ,我的是4.4.20 所以没有task_worker_num 返回。开了480个task_worker 进程 swoole 日志 没有捕获任何异常,日志级别为4,不知道为何明明有475个空闲,却还有3个在排队

hhxsv5 commented 3 years ago

检查是否安装了与Swoole冲突的扩展