欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-27 20:47:16
...
我用 while(true)在后台跑了一个守护进程,进程的任务是读取接口,并将接口内容放进Mysql && Redis && json.js。

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

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

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

部分代码

public function sync() {
    while(true){
        $this->syncData();
        sleep(5);
    }
}

回复内容:

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

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

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

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

部分代码

public function sync() {
    while(true){
        $this->syncData();
        sleep(5);
    }
}

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

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

用shell的while来代替PHP的while

相关标签: php daemon