laravel-performance/app/Console/Commands/UpdateMassiveCommand.php

110 lines
3.4 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Jobs\UpdateMassive1Job;
use App\Jobs\UpdateMassive2Job;
use App\Jobs\UpdateMassive3Job;
use App\Jobs\UpdateMassive4Job;
use App\Jobs\UpdateMassive5Job;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Bus;
class UpdateMassiveCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'app:update-massive-command';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Execute the console command.
*/
public function handle()
{
Bus::chain([
/**
* Atualiza o campo data e valor, uma transação por vez.
* Atualizando de forma unitária com where('id', 1), where('id', 2).
*
* 1000 - App\Jobs\UpdateMassive1Job .......... 1s DONE
* 10000 - App\Jobs\UpdateMassive1Job .......... 14s DONE
* 100000 - App\Jobs\UpdateMassive1Job ....... 2m 36s DONE
* 1000000 - App\Jobs\UpdateMassive1Job ...... 26m 10s DONE
*/
// new UpdateMassive1Job(),
/**
* Atualiza o campo data e valor, mas passando todos os ids das transações,
* Atualizando com where id in(1,2,3...).
*
* 1000 - App\Jobs\UpdateMassive2Job ...... 19.87ms DONE
* 10000 - App\Jobs\UpdateMassive2Job ..... 149.19ms DONE
* 100000 - App\Jobs\UpdateMassive2Job ........... 1s DONE
* 1000000 - App\Jobs\UpdateMassive2Job .......... 15s DONE
*/
// new UpdateMassive2Job(),
/**
* Atualiza o campo data e valor, mas o campo data será preenchido com um valor diferente para cada transação,
* Atualizando de forma unitária com where('id', 1), where('id', 2).
*
* 1000 - App\Jobs\UpdateMassive3Job ........... 1s DONE
* 10000 - App\Jobs\UpdateMassive3Job .......... 14s DONE
* 100000 - App\Jobs\UpdateMassive3Job ....... 2m 44s DONE
* 1000000 - App\Jobs\UpdateMassive3Job ...... 27m 10s DONE
*/
// new UpdateMassive3Job(),
/**
* Atualiza o campo data e valor, mas o campo data será preenchido com um valor diferente para cada transação,
* Atualizando de forma multipla com UpdateMassive
*
* 1000 - App\Jobs\UpdateMassive4Job ..... 85.32ms DONE
* 10000 - App\Jobs\UpdateMassive4Job .... 737.00ms DONE
* 100000 - App\Jobs\UpdateMassive4Job .......... 8s DONE
* 1000000 - App\Jobs\UpdateMassive4Job ...... 1m 15s DONE
*/
// new UpdateMassive4Job(),
/**
* Atualiza o campo data e valor, mas o campo data será preenchido com um valor diferente para cada transação,
* Atualizando de forma multipla com UpdateMassive2
*
* 1000 - App\Jobs\UpdateMassive5Job ..... 64.16ms DONE
* 10000 - App\Jobs\UpdateMassive5Job .... 590.20ms DONE
* 100000 - App\Jobs\UpdateMassive5Job .......... 7s DONE
* 1000000 - App\Jobs\UpdateMassive5Job ......... 58s DONE
*/
new UpdateMassive5Job(),
])->dispatch();
}
}