今天在配置ecstore2.0的定时任务时候,发现ECOS后台每30秒通过JS调用 http://localhost/ecstore-bugfix/index.php/shopadmin/index.php?ctl=default&act=status 地址来执行定时任务是无效的。ECOS如果没办法执行定时任务的话,很多定时或者自动处理的功能将无法实现。下面我将详细的讲解ECOS定时任务的配置。
1.配置crontab
CentOS已经默认安装好crontab,接下来就要为crontab写上定时执行的脚本。root权限下执行以下命令:crontab -e 粘贴以下命令进去:
1
2
|
*/5 */1 * * * /data/html/ecstore/script/queue/queue.sh /usr/bin/php >/dev/null
* * * * * /data/html/ecstore/script/crontab/crontab.php /usr/bin/php >/dev/null
|
:q 保存
注:”/data/html/ecstore” 为ecstore的安装路径
1
2
3
4
5
|
以上的代码所表述的内容是:每一小时的每
5分钟调用一次分配脚本
建议
crontab 每5分钟调用一次,如果数据量比较大,可以放在凌晨调用脚本
例如:每天凌晨
0点到4点每30分钟调用一次脚本,代码如下
30 0-4 * * * /data/html/ecstore/script/queue/queue.sh /usr/bin/php >/dev/null
* * * * * /data/html/ecstore/script/crontab/crontab.php /usr/bin/php >/dev/null
|
crontab命令用法
用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:* * * * *
minute hour day month dayofweek command
其时间段的含义如下:
- 第一段 代表分钟 0—59
- 第二段 代表小时 0—23
- 第三段 代表日期 1—31
- 第四段 代表月份 1—12
- 第五段 代表星期几 0代表星期日
2.实现步骤
- 关闭原系统调用机制
在config.php中添加如下代码
1
|
define('SYSTEM_CRONTAB',true);
|
最后保存,并输入以下命令重启cron
1
|
service crond restart
|