当前位置:首页 > PHP > 正文内容

php守护进程

高老师7年前 (2019-04-27)PHP2106
<?php
/**
 * daemonize让当前脚本为守护进程执行
 * @param string $callback 匿名函数
 */
function daemonize($callback)
{
    //创建子进程
    $pid = pcntl_fork();
    if ($pid < 0)
    {
        exit('创建子进程失败退出');
    }
    elseif ($pid)
    {
        exit('主进程退出');
    }
    else
    {
        //设置子进程为会话leader
        $sid = posix_setsid();
        if ($sid < 0)
        {
            exit('设置子进程为leader失败');
        }
        $callback();
    }
}

//执行任务来测试
$callback = function () {
    for ($i=0;$i<10000;$i++)
    {
        file_put_contents('1.txt',$i.PHP_EOL,FILE_APPEND);
    }
};
daemonize($callback);

先让主进程退出,然后设置子进程为会话组长即可

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/88.html

分享给朋友:

“php守护进程” 的相关文章

PHP获取原始数据

PHP获取原始数据

在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 =  filter_input(INPUT_POST...

 php mysql 行锁,php mysql 行级锁,php mysql 行锁定

php mysql 行锁,php mysql 行级锁,php mysql 行锁定

应用场景:PHP模拟购买,商品数量大于0才能购买常见代码:<?php //连接数据库 $con=mysqli_connect("localhost","ihuohuo","927464cy","ihuohuo");...

php soap 捕获异常,使用try catch 捕获Soap 异常

php soap 捕获异常,使用try catch 捕获Soap 异常

项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try {     $url = 'http...

php new class

php new class

<?php $member = new class {     public function getInfo()     {    ...

packagist包发布稳定版

packagist包发布稳定版

自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": {     "easy...