crontab秒级定时任务

Stephen 运维技术 2019-03-13 14:58:11

前段时间用Yii2做股票项目,股票项目对实时数据要求比较高,需要用到定时任务,每一秒都会请求新郎股票数据,但crontab定时任务最小单位是分,那如果需要实现秒级定时任务,需要写60次crontab,对于有强迫症的我是不能忍受的,我们可以用脚本实现秒级定时任务。

1.Yii2中定时任务控制器是写在console模块里

2.新建定时脚本crontab.sh

#!/bin/bash
step=1
for ((i = 0;i<60;i=(i+step)));do
    $(/www/server/php/56/bin/php '/www/wwwroot/a617/yii' 'init/gather')
    sleep $step
done
exit 0

$(/www/server/php/56/bin/php '/www/wwwroot/a617/yii' 'init/gather')解释:

/www/server/php/56/bin/php:PHP路径

/www/wwwroot/a617/yii:项目目录/yii

init/gather:console模块下的路由,控制器/方法

3.crontab定时任务

crontab -e
* * * * * cd /www/wwwroot/a617/ && sh /www/wwwroot/a617/crontab.sh >> /www/wwwroot/a617/111.log  2>&1

分享

评论