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

 

 

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