報錯資訊:
回複內容:
報錯資訊:
make是建立php檔案的命令,你裡的make:command是建立一個命令列任務,比如你建立了一個命令test,就可以在命令列執行 php artisan test 來執行這個 test 任務。
用於隊列執行的任務一般用 "Job" ,通過 php artisan make:job 建立一個job類,然後在代碼中用 dispatch(new FooJob) 來執行這個任務。如果需要這個job在隊列(queue)中執行(非同步),job類實現ShouldQueue即可。把job加到queue中後,這個隊列queue本身也是要啟動的,才能保證加進去的job可以按計劃執行,啟動隊列用php artisan queue:work命令列。官方文檔對這些都說的很清楚,多看幾遍多試試就弄通了。
https://laravel.com/docs/5.3/...
中文:https://laravel-china.org/doc...
建立事件(event)監聽者(listener)檔案時可以加參數 queued 用於標記這個listener需要在隊列中非同步執行,比如 php artisan make:listener Foobar --queued, 在EventServiceProvider中定義了事件event與listener的對應關係。在代碼中使用 event() 函數觸發一個事件,架構會根據EventServiceProvider中定義的監聽者來調用其代碼,如果監聽者是隊列的,就把它加入到隊列中。
Laravel中的事件、任務、監聽、通知都與隊列有關係。但是command(命令列)跟隊列沒關係,command可以理解為是跟在php artisan後面執行的一個命令列工具。命令列工具可以加入系統的計劃任務cron用於按照計劃時間來執行,比如每天淩晨3點重啟伺服器。Laravel提供了一種便捷的方法實現系統的cron計劃任務,在app/Console/Kernel.php中的schedule方法中寫即可。
不存在--queued選項,你是要做啥操作