0
ジョブ終了後にメールを送信しようとしていますが、キューに送信するのが好きです。しかし、私のコードは直接送信します。それはまあQueueing Mailキューメソッドでメールを送信しますが、直接送信しています
Mail::to($request->user())
->cc($moreUsers)
->bcc($evenMoreUsers)
->queue(new OrderShipped($order));
このことのプロセス
アプリ\メール\ CpJobFinished.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
...
class CpJobFinished extends Mailable implements ShouldQueue
{
use SerializesModels, Queueable;
...
// Some code for formating message
1つのCommandクラスで\アプリ\コンソール\従っています
私のコードコマンド\ CpRsyncJobs
<?php
namespace App\Console\Commands;
use App\Mail\CpJobFinished;
use Illuminate\Support\Facades\Mail;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
...
class CpRsyncJobs extends Command
Mail::to($email)->queue(new CpJobFinished($job));
しかし、このコードでは、直接送信する代わりにキューに送信します。もちろん、キューはアクティブであり、他のタスクのために動作します。
キューは、それが直接送信することが普通です空の場合は...キューを使用すると、ジョブが終了するまで待つという意味ではありません...どのようにそれは他の仕事のために働く? –
Cronデバッグプロセスで停止しました。タスクがジョブテーブルに挿入されていません。キューにタスクを送信すると、このタスクはテーブルジョブの新しいエントリになります。私のコードは仕事に仕事を送りません。 – abkrim