laravel 定时任务秒级执行方法及/dev/null 2>&1

 

一、直接将循环写到php代码里,再将 * * * * * php artisan schedule:run >> /dev/null 2>&1  写进crontab -e
for ($i=1;$i<=20;$i++){
     $users = $this->user->getUserIDs();
     foreach ($users as $user){ 
           $job = (new TradeJob($user->id));
           dispatch($job);
     }
     sleep(3);
}


二、通过shell脚本
/var/www/html/test.sh

#!/bin/bash
step=1 #间隔的秒数

for (( i = 0; i < 60; i=(i+step) )); do
 /usr/local/php/bin/php /home/www/blog/artisan schedule:run
 sleep $step
done

exit 0


crontab -e 编写 执行 第一步写的 test.sh 脚本

* * * * * /var/www/html/test.sh


四、也可以将crontab -e 里面的任务计划写到一个test.txt文件里,然后 crontab  test.txt也可以。
参考:https://www.cnblogs.com/lamp01/p/6864258.html
/dev/null 文件
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout 和 stderr,可以这样写:

$ command > /dev/null 2>&1

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章