Cron定时任务应用到Thinkphp

首先大家先了解一下Crontab命令,最后再给大家先容如何应用到Thinkphp.如果你已经了解过Crontab命令,可以拉到最后看如何应用到Thinkphp

安装crontab:

yum install crontabs

关于cron的一些命令:

/sbin/service crond start//启动服务

/sbin/service crond stop//关闭服务

/sbin/service crond restart//重启服务

/sbin/service crond reload//重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,实行命令:ntsysv

加入开机自动启动:chkconfig–level35crond on

crontab命令先容

功能说明:设置计时器。

语  法:crontab[-u<用户名称>][配置文件]或crontab[-u<用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以实行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:

MinuteHourDayMonthDayOFWeekCommand

参  数:

-e编辑该用户的计时器设置。

-l列出该用户的计时器设置。

-r删除该用户的计时器设置。

-u<用户名称>指定要设定计时器的用户名称。

crontab格式

基本格式:

** * * *command

分 时 日 月 周  命令

第1列表示分钟1~59每分钟用*或者*/1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

# Use the hash sign to prefix a comment

# +—————- minute (0 – 59)

# | +————- hour (0 – 23)

# | | +———- day of month (1 – 31)

# | | | +——- month (1 – 12)

# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)

# | | | | |

# * * * * * command to be executed

crontab文件的一些例子:

3021***/etc/init.d/nginx restart

每晚的21:30重启nginx。

4541,10,22**/etc/init.d/nginx restart

每月1、10、22日的4:45重启nginx。

101**6,0/etc/init.d/nginx restart

每周六、周日的1:10重启nginx。

0,3018-23***/etc/init.d/nginx restart

每天18:00至23:00之间每隔30分钟重启nginx。

023**6/etc/init.d/nginx restart

每星期六的11:00pm重启nginx。

**/1 * * * /etc/init.d/nginx restart

每一小时重启nginx

*23-7/1***/etc/init.d/nginx restart

晚上11点到早上7点之间,每隔一小时重启nginx

0114*mon-wed/etc/init.d/nginx restart

每月的4号与每周一到周三的11点重启nginx

041jan*/etc/init.d/nginx restart

一月一号的4点重启nginx

*/30 * * * * /usr/sbin/ntpdate210.72.145.20

每半小时同步一下时间

应用到thinkphp

首先你得把要定时实行的功能代码写到Action中。或者可以用URL访问之后可以实行也行。

例如我把定时每天遍历订单是否有成交额的更新代码放在Order/update_status下。

而我的项目访问地址是www.jieqinwang.com即:这个功能的代码实行路径为:http://www.jieqinwang.com/XXX/xxx

得到这个路径之后就可以去liunx去配置cron了。

crontab-e进入任务列表。

按下I键进入编辑模式,然后添加一条任务。

比如我想每天中午12点实行一次我刚刚写的那段代码

就添加新的一行012***curl http://www.jieqinwang.com/XXX/xxx

然后按Esc键退出编辑模式,再输入:wq回车。保存退出。

这样大家就添加了一个定时任务。可以利用crontab-l来查看任务列表是否已经含有。

最后一步,因为这样添加进行有可能不会马上生效。大家重启一下cron服务就可以了。

重启服务命令:/sbin/service crond restart

大功告成!如果还有哪里不明白的地方可以发表评论,我会尽快回复的。

推荐阅读更多精彩内容

  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,094评论 0赞 4
  • Linux定时任务Crontab命令详解linux 系统则是由 cron (crond) 这个系统服务来控制的。L...
    时待吾阅读 64评论 0赞 0
  • 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (cro...
    Zcclucky阅读 195评论 0赞 0
  • linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性...
    苏大发阅读 233评论 0赞 0
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond概况 crond是linu...
    happeace阅读 1,019评论 0赞 53