首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP 定时任务

PHP 定时任务

作者头像
黄啊码
发布2020-05-29 16:49:32
发布2020-05-29 16:49:32
2.4K0
举报

这里主要说说Linux的crontab。顺便提一下,据说,在PHP实现定时任务,这是首选方案。

crontab文件的位置:

代码语言:javascript
复制
/etc/crontab

命令:

代码语言:javascript
复制
cd /etc
vim crontab

可以清晰看到配置的提示说明

代码语言:javascript
复制
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

5个参数时间参数,从左往右,分别是 分钟、小时、日、月、星期,其中(数字/* )代表 每(数字)单位执行一次。例子:

代码语言:javascript
复制
#每分钟执行一次的两种实现
#分钟为1则执行
1 * * * * 
#每1分钟执行一次
1/* * * * *

每天0时0点请求一次

代码语言:javascript
复制
0 0 * * * root curl http://ding.shi.renwu?id=001\&name=bobo
或者
0 0 * * * root curl "http://ding.shi.renwu?id=001&name=bobo"

这里提醒一下,URL传递参数,不能使用&,因为&在Linux下另有其义,用&连接参数会造成参数丢失。解决方法有两种:

1,使用转义字符,\& 代替 &

2,url用双引号包围

好了,就是这么简单,配置完成。

想查看定时任务是否有执行,可以到日志文件查看,位置是:

/var/log/cron

代码语言:javascript
复制
cd /var/log
tail -f cron

这个日志,只记录定时执行情况,不显示执行后的返回结果。

想查看请求调用的情况,可在调试阶段,直接使用curl命令检查方法是否正确执行

代码语言:javascript
复制
curl "http://ding.shi.renwu"

这个跟在浏览器直接输入请求还是很不同的,像上文提到的&字符问题,浏览器输入链接没有问题,但在Linux下调用必然出错。

还有curl可以用 -d 选项 POST 参数等,这些都不是浏览器直接输入可以完成。

the end!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/10/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档