Maison > développement back-end > tutoriel php > daemon - php守护进程运行一段时间后没死但是不工作了

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-06 20:20:41
original
1598 Les gens l'ont consulté

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

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

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

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

部分代码

<code>public function sync() {
    while(true){
        $this->syncData();
        sleep(5);
    }
}</code>
Copier après la connexion
Copier après la connexion

回复内容:

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

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

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

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

部分代码

<code>public function sync() {
    while(true){
        $this->syncData();
        sleep(5);
    }
}</code>
Copier après la connexion
Copier après la connexion

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

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

用shell的while来代替PHP的while

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal