>php教程 >php手册 >Cron定时任务应用到Thinkphp

Cron定时任务应用到Thinkphp

WBOY
WBOY원래의
2016-06-07 11:39:591289검색

Cron定时任务应用到Thinkphp
首先我们先了解一下Crontab命令,最后再给大家介绍如何应用到Thinkphp.如果你已经了解过Crontab命令,可以拉到最后看如何应用到Thinkphp<br> <br> 安装crontab:<br>  <br> yum install crontabs<br>  <br>  <br> 关于cron的一些命令:<br>  <br> <br> /sbin/service crond start //启动服务  <br>   <br> /sbin/service crond stop //关闭服务  <br>   <br> /sbin/service crond restart //重启服务  <br>   <br> /sbin/service crond reload //重新载入配置  <br> <br> 查看crontab服务状态:service crond status<br>  <br> 手动启动crontab服务:service crond start<br>  <br> 查看crontab服务是否已设置为开机启动,执行命令:ntsysv<br>  <br> 加入开机自动启动: chkconfig –level 35 crond on<br>  <br>  <br> crontab命令介绍<br>  <br> <br> 功能说明:设置计时器。  <br>    <br>    <br> 语  法:crontab [-u ][配置文件] 或crontab [-u ][-elr]  <br>    <br>    <br>    <br> 补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:  <br>    <br> Minute Hour Day Month DayOFWeek Command  <br>    <br>    <br>    <br> 参  数:  <br>    <br> -e  编辑该用户的计时器设置。  <br>    <br> -l  列出该用户的计时器设置。  <br>    <br> -r  删除该用户的计时器设置。  <br>    <br> -u  指定要设定计时器的用户名称。  <br>  <br>  <br>  <br>  <br> crontab 格式<br>  <br> <br> 基本格式:  <br>    <br> * * * * *  command  <br>    <br> 分 时 日 月 周  命令  <br>    <br>    <br>    <br> 第1列表示分钟1~59 每分钟用*或者*/1表示  <br>    <br> 第2列表示小时1~23(0表示0点)  <br>    <br> 第3列表示日期1~31  <br>    <br> 第4列 表示月份1~12  <br>    <br> 第5列标识号星期0~6(0表示星期天)  <br>    <br> 第6列要运行的命令  <br>    <br>    <br>    <br> # Use the hash sign to prefix a comment  <br>    <br> # +—————- minute (0 – 59)  <br>    <br> # | +————- hour (0 – 23)  <br>    <br> # | | +———- day of month (1 – 31)  <br>    <br> # | | | +——- month (1 – 12)  <br>    <br> # | | | | +—- day of week (0 – 7) (Sunday=0 or 7)  <br>    <br> # | | | | |  <br>    <br> # * * * * * command to be executed  <br>  <br>  <br>  <br>  <br> crontab文件的一些例子:<br>  <br>  <br> 30 21 * * * /etc/init.d/nginx restart  <br>    <br> 每晚的21:30重启nginx。  <br>    <br>    <br>    <br> 45 4 1,10,22 * * /etc/init.d/nginx restart  <br>    <br> 每月1、10、22日的4 : 45重启nginx。  <br>    <br>    <br>    <br> 10 1 * * 6,0 /etc/init.d/nginx restart  <br>    <br> 每周六、周日的1 : 10重启nginx。  <br>    <br>    <br>    <br> 0,30 18-23 * * * /etc/init.d/nginx restart  <br>    <br> 每天18 : 00至23 : 00之间每隔30分钟重启nginx。  <br>    <br>    <br>    <br> 0 23 * * 6 /etc/init.d/nginx restart  <br>    <br> 每星期六的11 : 00 pm重启nginx。  <br>    <br>    <br>    <br> * */1 * * * /etc/init.d/nginx restart  <br>    <br> 每一小时重启nginx  <br>    <br>    <br>    <br> * 23-7/1 * * * /etc/init.d/nginx restart  <br>    <br> 晚上11点到早上7点之间,每 隔一小时重启nginx  <br>    <br>    <br>    <br> 0 11 4 * mon-wed /etc/init.d/nginx restart  <br>    <br> 每月的4号与每周一到周三 的11点重启nginx  <br>    <br>    <br>    <br> 0 4 1 jan * /etc/init.d/nginx restart  <br>    <br> 一月一号的4点重启nginx  <br>    <br>    <br>    <br> */30 * * * * /usr/sbin/ntpdate 210.72.145.20  <br>    <br>    <br> 每半小时同步一下时间  <br>  <br>  <br> <b>应用到thinkphp</b><br> 首先你得把要定时执行的功能代码写到Action中。或者可以用URL访问之后可以执行也行。<br> 例如我把定时每天遍历订单是否有成交额的更新代码放在 Order/update_status 下。<br> 而我的项目访问地址是www.jieqinwang.com 即:这个功能的代码执行路径为:http://www.jieqinwang.com/XXX/xxx<br> 得到这个路径之后就可以去liunx去配置cron了。<br>  <br> crontab -e 进入任务列表。<br> 按下I键进入编辑模式,然后添加一条任务。<br> 比如我想每天中午12点执行一次我刚刚写的那段代码<br> 就添加新的一行  0 12 * * *  curl http://www.jieqinwang.com/XXX/xxx<br> 然后按Esc键退出编辑模式,再输入:wq回车。保存退出。<br> 这样我们就添加了一个定时任务。可以利用crontab -l来查看任务列表是否已经含有。<br> 最后一步,因为这样添加进行有可能不会立即生效。我们重启一下cron服务就可以了。<br> 重启服务命令:/sbin/service crond restart <br> 大功告成!如果还有哪里不明白的地方可以发表评论,我会尽快回复的。

AD:真正免费,域名+虚机+企业邮箱=0元

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.