EasySwoole Task执行超时的问题

最近在使用EasySwoole处理异步任务(Task)时遇到了一个问题。

有一个Task,原本是在`EasySwooleEvent.php`中注册Crontab并异步调用这个Task运行的,好像没啥问题。但当把这个Task改为在Http控制器中执行时,问题出现了。

这个Task的运行时长通常在2分钟左右,在Crontab中能正常运行,而通过Http控制器去请求同步执行时,基本上都是在8秒左右就结束了,并且返回一个`-7`的错误代码,EasySwoole官网文档中说这个错误是因为超时。

在WSL2下做PHP开发太方便了

WSL(Windows Subsystem for Linux),即Windows下的Linux子系统,为使用Windows的Linux开发者提供了很大的便利,当前的WSL大版本是2,已支持systemd,对开发者更是利好。

本人主要用PHP和Python开发,近期也尝试了在WSL2下进行PHP开发,Linux发行版使用的是Ubuntu 20.04。

EasySwoole3.4升级到3.5的变化

之前用EasySwoole的时候是版本3.4,最新的版本已经是3.7了,但需要PHP8版本,3.6版本也同样需要PHP8才可以,而3.5版本有PHP7.4就可以了,所以先升级到3.5吧。

因为老项目里的代码不多,所以我采用的是全新安装框架的方式,再把老项目里的代码迁移过去。迁完运行,发现一些问题:

EasySwoole日志处理

EasySwoole下日志处理有多种方式。

典型的是官方推荐的处理方式,自定义一个日志处理类实现`EasySwoole\Log\LoggerInterface`接口,并在`EasySwooleEvent.php`中的`initialize`方法中,设置由该类来接管日志,则运行中的所有日志都由该类来处理了。

豫ICP备19001387号-1