定时任务
配置定时任务
运行商派的环境一般是Linux系统,所以不用考虑如何在Windows上配置,
#检查 /home/目录下是否有www目录,没有则创建一个
mkdir /home/www
#配置定时任务,必须配置的是www权限的crontab,不要在root或者其他用户下配置
crontab -uwww -e
#将下面的配置复制进去
* * * * * /data/httpd/script/queue/queue.sh /usr/local/php56/bin/php > /dev/null
* * * * * /usr/local/php56/bin/php /data/httpd/script/crontab/crontab.php >/dev/null说明:
/data/httpd/是系统根目录
/usr/local/php56/bin/php/php运行目录
创建一个定时任务
最近在做个app名为foodmap的应用,就以这个应用为例,在foodmap/目录下创建crontab.xml文件
写入以下代码:
<cronentries>
<cron id="foodmap_tasks_supplierSync">
<description>批量跟接口同步供货商信息</description>
<schedule>* * * * *</schedule>
<enabled>true</enabled>
</cron>
</cronentries>说明:
<cron id="foodmap_tasks_supplierSync">会去调用foodmap/lib/tasks/supplierSync.php文件中的foodmap_tasks_supplierSync类
<description>批量跟接口同步供货商信息</description>定时任务描述
<schedule>* * * * *</schedule>定时任务运行周期,跟linux配置定时任务规则相同,此规则为一分钟调用一次
<enabled>true</enabled>是否启用
创建foodmap/lib/tasks/supplierSync.php文件,写入一下代码:
class foodmap_tasks_supplierSync extends base_task_abstract implements base_interface_task{
function exec($params = null)
{
// TODO: Implement exec() method.
logger::info('执行任务开始!');
//要执行定时任务的代码
logger::info('执行任务结束!');
}
}说明:
类foodmap_tasks_supplierSync继承base_task_abstract实现base_interface_task后,必须实现exec()方法,这个方法就是默认执行任务的函数。
提示: 所有的定时任务先放到队列中,然后在被执行。 在总后台打开 系统>定时任务 来查看创建的定时任务信息。
Last updated