대기열 작업이 계속 실행되어야합니다.대기열 작업이 항상 실행 중임
즉, 작업이 완료되면 다시 작업을 시작해야합니다.
어떻게하면됩니까?
<?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 –