laravel-performance/app/Tasks/MassUpdate/Group2/MassUpdate3Task.php

45 lines
1.2 KiB
PHP

<?php
namespace App\Tasks\MassUpdate\Group2;
use App\Models\Transaction;
use Carbon\Carbon;
class MassUpdate3Task
{
/**
* 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 ........... 1s DONE
* 10000 .......... 14s DONE
* 100000 ....... 2m 44s DONE
* 1000000 ...... 27m 10s DONE
*/
public function handle(): void
{
Transaction::query()
->select([
'id',
'date',
'value',
])
->where('id', '>', 0)
->chunkById(1000, function ($transactions) {
foreach ($transactions as $transaction) {
$transaction->date = Carbon::now()->subDays(random_int(1, 3));
$transaction->value = 10 + random_int(0, 10);
Transaction::query()
->where('id', '=', $transaction->id)
->update([
'date' => $transaction->date,
'value' => $transaction->value,
]);
}
});
}
}