资讯专栏INFORMATION COLUMN

php 定时任务

hzx / 1632人阅读

摘要:但是对于定时任务这一块怎么使用都不行。服务器计划任务服务器可以直接使用定时任务执行相关的应用程序,服务器则可以通过在里添加定时任务来实现。

google百度了下,PHP任务大体上可以分为三类

最近需要去定时请求数据,然后分析之后 指定相应的文本 通过socket广播给用户。

具体的分析 制定文本的业务 不复杂。 使用curl 请求数据 。但是对于定时任务这一块怎么使用都不行。

1、服务器计划任务

WIN服务器可以直接使用定时任务执行相关的应用程序,LINUX服务器则可以通过在/etc/crontab里添加定时任务来实现。

    php -f  文件所在位置

缺点:最低一分钟的任务计划。 很多请求需要一分钟以内。 需要储存上一次的数据,下次再去取。

2、通过死循环实现任务自动执行

建立一个程序文件页面,通过ignore_user_abort来设置关闭浏览器页面后仍可执行,那么,在运行该程序页面后,您所需要的任务计划便会一直自动执行。对于一般的PHP程序员来说,如果没有足够的把握,这种操作是不被允许的,因为死循环极容易使用服务器当机。

        set_time_limit(0);   // 取消超时
        // ignore_user_abort(true);  //  浏览器关闭 继续执行 
        while (true) {
            dongsomthing();
            sleep( 120); // 定时 120秒   usleep()  毫秒  1000毫秒=1秒
        }
        die; 

sleep 和 usleep 都不太精确

缺点:长时间占据内存,经常无缘无故 自己暂停。

3、通过workman等第三方框架。

···

count = 1;
$task->onWorkerStart = function($task)
{
    // 每2.5秒执行一次 支持小数,可以精确到0.001,即精确到毫秒级别
    $time_interval = 30;
    Timer::add($time_interval, function()
    {
           dosomthing() 
          echo "task run
";
    });
};

// 运行worker
Worker::runAll();
    
?>

···

可以精确到秒, 还是会经常暂停! 别人说他能跑半年 不停。 我是不是开的任务比较多,因为我又8个任务 没30秒 请求一次。
参考workman手册 (https://www.kancloud.cn/walko...)
使用方法很简单 配置好php环境,然后直接命令行执行改文件就行了

  php  -f 文件所在位置
4、使用GatewayWorker搭建socket 服务端
    https://www.workerman.net/workerman-chat

因为需要分析出文本之后广播到每个客户端,那如何在调用socket方法推送给每个客户呢?
参考其他项目中推送消息 (https://www.kancloud.cn/walko...)

那如何存入数据库呢?
参考https://www.kancloud.cn/walko...

参考(https://www.kancloud.cn/walko...

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

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

相关文章

  • PHP实现执行定时任务的几种思路详解

    摘要:本文,我们就来深入的解析几种常见的定时任务的思路。借用第三方定时任务跳板很好玩的是,一些服务商提供了各种类型的定时任务,例如阿里云的提供了单独的定时任务,你可以填写自己应用下的某个。比如说,你可以在阿里云上建立一个每天凌晨点的定时 PHP本身是没有定时功能的,PHP也不能多线程。PHP的定时任务功能必须通过和其他工具结合才能实现,例如WordPress内置了wp-cron的功能,很厉害...

    pumpkin9 评论0 收藏0
  • [转]详解PHP设置定时任务的实现方法

    摘要:服务器定时任务服务器定时任务需要你是独立的服务器,或者是,总之就是对系统的配置有足够的权限,虚拟空间就不要折腾这个方法了,因为你没有权限。 文章转载自:问说网 » 详解PHP设置定时任务的实现方法地址:http://www.uedsc.com/php-timing-task.html 定时运行任务对于一个网站来说,是一个比较重要的任务,比如定时发布文档,定时清理垃圾信息等,现在的网站大...

    lemon 评论0 收藏0
  • PHP定时器那点事

    摘要:如果把改成,还能实现微秒纳秒级定时器,岂不美哉实践中应当尽量避免用这种方式实现定时器,不仅因为低效,还略有危险。接下来看看中使用定时器的正确姿势。在这种形式下,实现定时器就有多种玩法。 转载请注明文章来源:https://tlanyan.me/timer-in-php/ 常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表;另一种在指定时间后执行(一次),例如会员登录系统...

    tyheist 评论0 收藏0
  • crontab定时任务详解

    摘要:如下即为错误的写法后台执行命令在前台运行某个任务时,终端被该任务占据,可以使用命令把任务放到后台执行。含义先看一个例子这个定时任务的意思就是在后台执行这条命令,并将错误输出重定向到标准输出,然后将标准输出全部存到文件中,并清空日志文件。 原文发表于:crontab定时任务详解 启用 service crond start 基本格式 #分 时 日 月 周 * *...

    Chao 评论0 收藏0
  • Linux crontab 访问PHP URL完成定时任务

    摘要:而我本人需要完成的任务是定时访问一个文件链接去生成,所以访问就不能用去完成,而是要用。本站的这篇下执行定时任务命令详解写的非常详细,建议看一下。 crontab -e 新建/编辑一个任务crontab -l 列出所有任务 crontab 格式: 基本格式 :分钟 小时 日 月 星期 命令第1列表示分钟1~59 每分钟用或者 /1表示第2列表示小时1~23(0表示0点...

    zhangyucha0 评论0 收藏0
  • Linux crontab 访问PHP URL完成定时任务

    摘要:而我本人需要完成的任务是定时访问一个文件链接去生成,所以访问就不能用去完成,而是要用。本站的这篇下执行定时任务命令详解写的非常详细,建议看一下。 crontab -e 新建/编辑一个任务crontab -l 列出所有任务 crontab 格式: 基本格式 :分钟 小时 日 月 星期 命令第1列表示分钟1~59 每分钟用或者 /1表示第2列表示小时1~23(0表示0点...

    QiuyueZhong 评论0 收藏0

发表评论

0条评论

hzx

|高级讲师

TA的文章

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