大家好,如標題所示,我的Laravel專案的排程只會執行一次
我的作業系統為Windos7、php為7.3.6、Laravel版本為5.5.48
我的作法為依照文件所示:先至laravel/app/consle/Kernel.php新增排程功能如下:
protected function schedule(Schedule $schedule)
{
// $schedule->call(function () {
// Log::info('success');
// })->everyMinute();
$schedule->call(function(){
DB::insert('insert into test (data) values (?)', array('Dayle'));})->everyMinute();
// $schedule->command('inspire')
// ->hourly();
// $schedule->command('test:LOG')->everyMinute();
}
接著在cmd打上:php artisan schedule:run
回覆為:Runnung scheduled command: Closure
之後於DB內確認有新增一筆資料,但並沒有像預期中的每分鐘皆新增一筆。
你有在crontab內加入如下排程器的動作嘛??
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
沒有的話,它是不會跑的。
everyMinute只是告訴 schedule 這個命令是每分跑一次。
但並不代表它就會每分跑。
你還是需要crontab來幫你跑。
您好,請問這行指令是要建立windows本身的工作排程器嗎?
我嘗試於c:/xampp/htdocs/Laravel5.5路徑下執行php /path/to/artisan schedule:run >> /dev/null 2>&1此指令,但回覆為:The system cannot find the path specified.
我認為應該是我的路徑或是指令有下錯,但是實在不明白此指令代表的涵義。
我也有嘗試用 https://shian420.pixnet.net/blog/post/344746000-%5Blaravel%5D-%E7%95%B6windows%E9%81%87%E4%B8%8Alaravel%E4%BB%BB%E5%8B%99%E6%8E%92%E7%A8%8B 這篇的教學直接開啟工作排程器新增自動排程,但依然無效,麻煩您再幫我解惑,謝謝。
您好,WINDOWS好像只能用介面設定排程器,無法使用指令,但經過介面設定排程器後功能已經正常了,謝謝。
你處理好就好了。
我沒注意看你是windows系統。
windows的設定方式不一樣沒錯。它是要用「計劃排程」
只是我給你的只是範例用的。實際的運行你要自已改。
幸好你還會改。