资讯专栏INFORMATION COLUMN

PHP实现的毫秒定时器,同时解决进程不重复堆积

Zhuxy / 3078人阅读

摘要:那么我们如何使用纯实现纯粹的定时器任务,且能适应认识任务业务需求基于模式运行,依赖扩展因该定时器支持毫秒,时间间隔较小,未来防止进程堆积,做了进程判断,进程存在就本次停止,等待下一次执行。

定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:
1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;
2)配合使用ignore_user_abort()和set_time_limit(),使脚本脱离浏览器运行。前者是利用Linux的特性,和PHP本身没有多大关系,后者使用场景有限,且只能由一次HTTP请求触发该脚本,执行完后退出。那么我们如何使用纯PHP实现纯粹的定时器任务,且能适应认识任务业务需求?

基于cli模式运行,依赖php扩展 swoole

因该定时器支持毫秒,时间间隔较小,未来防止进程堆积,做了进程判断,进程存在就本次停止,等待下一次执行。

> /var/www/html/cctv/Runtime/Logs/huisu_si.log &";
            
            $ret = shell_exec("$start_master_cmd");
            // var_dump($ret);
            echo "开启进程:" . $start_master_cmd . "
==============================
";
        } else {
            echo "进程已存在~~休息一下~~(".$ret.")
==============================
";
        }
    });
} else {
    exit("非cli模式,已经停止执行!
");
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29425.html

相关文章

  • PHP并发IO编程之路

    摘要:下文如无特殊声明将使用进程同时表示进程线程。收到数据后服务器程序进行处理然后使用向客户端发送响应。现在各种高并发异步的服务器程序都是基于实现的,比如。 并发 IO 问题一直是服务器端编程中的技术难题,从最早的同步阻塞直接 Fork 进程,到 Worker 进程池/线程池,到现在的异步IO、协程。PHP 程序员因为有强大的 LAMP 框架,对这类底层方面的知识知之甚少,本文目的就是详细介...

    Riddler 评论0 收藏0
  • RocketMq消息中间件介绍

    摘要:消息生产者,负责发消息到。消息消费者,负责从上拉取消息进行消费,消费完进行。集群部署端完全消费正常后在进行手动确认。消息发送成功后,服务器返回确认消息给生产者。根据本地事务执行的结果向发送提交或回滚消息。 RabbitMQerlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致RabbitMQ的性能急剧下降。...

    goji 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<