thinkphp框架里怎么用linux的crontab写php的定时脚本

markff110 2014-06-06 07:13:40
脚本应该单独用文件写还是写在控制器里,写在控制器里用crontab执行不到。写在单独文件会报连接数据库失败
...全文
7611 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2016-07-13
  • 打赏
  • 举报
回复
写个php,然后在php内curl tp框架的路径就可以了,然后把这个php设crontab 例如: tp的访问地址是http://www.tp.com/a/b/c 写个php,例如tpcrontab.php 内容如下

 <?php
    $url = 'http://www.tp.com/a/b/c';
    $timeout = 30;
    $data = array();
    $header = array();
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查  
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
  
    $response = curl_exec($ch);  
  
    if($error=curl_error($ch)){  
        die($error);  
    }  
  
    curl_close($ch);  
  
    echo $response; 
 ?>
之后在crontab调用 * * * * * php tpcrontab.php
justS0 2016-07-12
  • 打赏
  • 举报
回复
还是单独写比较好,不要写在框架里,不要通过URL执行,如果要是同步的脚本,请求时间过长超时的话 就不能执行了
truelovesdu 2016-07-12
  • 打赏
  • 举报
回复
引用 3 楼 fdipzone 的回复:
使用curl去执行就可以了。 例如 5 0 * * * curl http://localhost/controller/action
怎么防止恶意执行呢,理论上只可以本机执行的,如果是访问url,那么外部人员也可以执行了啊。
fathpanus 2014-07-09
  • 打赏
  • 举报
回复
用PHP的CLI模式运行啊。。 crontab -e * * * * * /path/php demo.php 这样就可以。。
mrc13141139113 2014-06-19
  • 打赏
  • 举报
回复
汗,这也可以 脚本不是应该独立于程序的吗.
yueyakk 2014-06-15
  • 打赏
  • 举报
回复
引用 1 楼 BingoVictor 的回复:
我们项目里面就是卸载控制器里面的。。用的也是tp框架。。 你把你的代码贴出来看看
正解,我就是这样解决的
傲雪星枫 2014-06-08
  • 打赏
  • 举报
回复
使用curl去执行就可以了。 例如 5 0 * * * curl http://localhost/controller/action
风.foxwho 2014-06-07
  • 打赏
  • 举报
回复
直接在框架里面写,写完 之后,会有一个访问地址, linux 定时访问这个地址就可以了。
断点Bingo 2014-06-06
  • 打赏
  • 举报
回复
我们项目里面就是卸载控制器里面的。。用的也是tp框架。。 你把你的代码贴出来看看

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧