Я использую задания Laravel и не знаю, является ли это поведением по умолчанию, или я что-то упускаю.
В моем контроллере я создал простой цикл for
, который выполняет 5 итераций и каждыйИтерация запускает задание, которое регистрирует это число.
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Jobs\TestJob;
class TestController extends Controller
{
public function test()
{
for($i = 0; $i < 5; $i++) {
TestJob::dispatch($i);
}
}
}
, и в моем файле задания я просто вывожу вывод
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class TestJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $count;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($count)
{
$this->count = $count;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
\Log::useFiles(storage_path() . '/logs/debug.log');
\Log::debug('Running test' . $this->count);
}
}
Это достаточно справедливо и работает так, как я ожидаю.Чего я не ожидаю, так это вывода.Почему я получаю
[2018-05-13 07:50:23] local.DEBUG: Running test0
[2018-05-13 07:50:23] local.DEBUG: Running test1
[2018-05-13 07:50:23] local.DEBUG: Running test1
[2018-05-13 07:50:23] local.DEBUG: Running test2
[2018-05-13 07:50:23] local.DEBUG: Running test2
[2018-05-13 07:50:23] local.DEBUG: Running test2
[2018-05-13 07:50:23] local.DEBUG: Running test3
[2018-05-13 07:50:23] local.DEBUG: Running test3
[2018-05-13 07:50:23] local.DEBUG: Running test3
[2018-05-13 07:50:23] local.DEBUG: Running test3
[2018-05-13 07:50:23] local.DEBUG: Running test4
[2018-05-13 07:50:23] local.DEBUG: Running test4
[2018-05-13 07:50:23] local.DEBUG: Running test4
[2018-05-13 07:50:23] local.DEBUG: Running test4
[2018-05-13 07:50:23] local.DEBUG: Running test4
вместо
[2018-05-13 07:50:23] local.DEBUG: Running test0
[2018-05-13 07:50:23] local.DEBUG: Running test1
[2018-05-13 07:50:23] local.DEBUG: Running test2
[2018-05-13 07:50:23] local.DEBUG: Running test3
[2018-05-13 07:50:23] local.DEBUG: Running test4
Если у меня есть другой код в дескрипторе вместо регистрации, будет ли это выполняться несколько раз?