2017-06-29 10 views
0

私はデータベースにlaravelキューをセットアップしました。 dd(env('QUEUE_DRIVER'))を実行すると、databaseが返されます。ジョブを作成するとすぐに実行されます。 php artisan queue:workを実行するまで、ジョブをキューに入れてください。仕事をすぐには実行できないようにするためには、私は何をする必要がありますか?ありがとう!Laravelキュージョブ実行直後

編集1:

派遣コード:

for ($i=0; $i < 100; $i++) { 
     $job = new UpdateJob(""); 
     dispatch($job); 
} 

求人コード:

public function handle(){ 
    sleep(30); 
    SlackApi::SendMessage("Job!"); 
} 

私はこれを実行すると、私はたるみメッセージ30秒ごとに取得します。しかし、これらのジョブのどれもがDBに格納されていません。

編集2:

私は仕事はまだすぐに実行されたジョブに->delay(Carbon::now()->addMinutes(10))を追加しても。

+0

ジョブをキューに入れると、できるだけ早く実行されます。多くのタスクを実行してキューに入れられ、1つずつ実行されるようにするために、目的のために作成されたジョブ機能。多分この記事はあなたを助けることができます:https://laracasts.com/discuss/channels/laravel/laravel-51-queue-job-delay-doesnt-work –

+0

あなたの仕事を派遣するコードの行を私に教えてください – vietnguyen09

+0

@ vietnguyen09編集 –

答えて

0

問題はv5.1からv5.4へのアップグレードから発生しているようです。私はapp.phpのプロバイダにIlluminate\Bus\BusServiceProvider::classを追加し、すべてを修正しました。

0

スーパーバイザは実行していますか?スーパバイザが設定されている場合、キューはキューに追加されたときにそのジョブを息子として処理します。遅延したジョブのディスパッチが必要な場合は、遅延を指定する必要があります。 https://laravel.com/docs/5.4/queues#delayed-dispatchingを参照してください。

関連する問題