キュージョブを常に実行しておく必要があります。キュージョブを常に実行しています
これは、ジョブが処理を終了すると、ジョブが再び開始されることを意味します。
どうすればいいですか?
は、ここに私の仕事です:
<?php
namespace App\Jobs;
use App\User;
use App\Post;
use App\Jobs\Job;
use Illuminate\Contracts\Mail\Mailer;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class PostJob extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
$posts = Post::where('user_id', $this->user->id)
->get();
foreach ($posts as $post) {
// perform actions
}
}
}
ここでジョブ・コントローラです:
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use App\Jobs\SendReminderEmail;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
public function startPostJob(Request $request, $id)
{
$users = User::all();
foreach ($users as $user) {
$this->dispatch(new PostJob($user));
}
}
}
ジョブの実行後に例外をスローすると、ジョブがキューに戻されます。ただし、アプリケーションで許可されている最大試行回数だけ再試行されます。 – swatkins
@ user6592471 –