php守护进程运行一段时间后没死但是不工作了

我用 while(true)在后台跑了一个守护进程,进程的任务是读取接口,并将接口内容放进Mysql && Redis && json.js。

问题是进程运行一段时间(大概半月)后,没有死,但是不工作了。

请问这是一个常见的问题吗?还是因为我的代码有问题导致的问题。

我现在的解决办法是定时重启下进程,有更好的办法吗?

部分代码

public function sync() {
    while(true){
        $this->syncData();
        sleep(5);
    }
}
阅读 6.5k
3 个回答

编写运行在命令行下的PHP CLI程序时,建议不要使用持久连接,建议每次使用MySQL时都重新打开和关闭数据库连接,避免数据库连接丢失时导致CLI程序出现故障.Redis同理.

认为可以尝试workerman 或者swoole 这两个适合做守护进程任务的框架,这两个都比较活跃,并且使用者比较多

用shell的while来代替PHP的while

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题