ホームページ >バックエンド開発 >PHPチュートリアル >timer定时器 - 用PHP实现linux的crontab(有后台管理功能)应该怎么做?

timer定时器 - 用PHP实现linux的crontab(有后台管理功能)应该怎么做?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-06 20:06:141065ブラウズ

我的思路是,从库里读取记录,然后循环parse crontab格式为datetime格式,判断是否等于当前时间,等于的话,就pcntl_fork个进程,执行命令
疑惑的地方,怎么实现轮训的过程,

<code>while(1){
     $row = "select * from crontab";
     if($row['time']== $current_time){
         pcntl_fork();;//exec($command);
     }
     
    sleep(1);
}</code>

怎么能更准确一些呢,谢谢大家了。
看了一些开源的代码,还有有点迷糊

回复内容:

我的思路是,从库里读取记录,然后循环parse crontab格式为datetime格式,判断是否等于当前时间,等于的话,就pcntl_fork个进程,执行命令
疑惑的地方,怎么实现轮训的过程,

<code>while(1){
     $row = "select * from crontab";
     if($row['time']== $current_time){
         pcntl_fork();;//exec($command);
     }
     
    sleep(1);
}</code>

怎么能更准确一些呢,谢谢大家了。
看了一些开源的代码,还有有点迷糊

1、可以考虑先找看看有没有这方面的轮子。
from github
https://github.com/lavary/crunz

2、要自己写的话,可以考虑 event loop,基于 php 的扩展 libevent

3、判断是否等于当前时间,改成判断是否小于等于当前时间

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。