laravel-performance/app/Tasks/UpdateMassive4Task.php

43 lines
1.2 KiB
PHP

<?php
namespace App\Tasks;
use App\Database\UpdateMassive;
use App\Models\Transaction;
use Carbon\Carbon;
use Ramsey\Collection\Collection;
class UpdateMassive4Task
{
public function handle(): void
{
Transaction::query()
->select([
'id',
'date',
'value',
])
->where('id', '>', 0)
->chunkById(1000, function ($transactions) {
$config = [];
/** @var Collection $transactions */
foreach ($transactions as $transaction) {
$transaction->date = Carbon::now()->subDays(random_int(1, 3));
$transaction->value = 10 + random_int(0, 10);
$config[] = [
'primary_key' => $transaction->id,
'columns' => [
'transactions.date' => "'$transaction->date'::timestamp",
'transactions.value' => $transaction->value,
]
];
}
$updateMassive = new UpdateMassive();
$updateMassive->apply('transactions', 'id', $config);
});
}
}