Есть Job который должен обновить записи в бд. Проблема в том, что за каждый запуск он обновляет только половину. И так при каждом запуске, всегда только ~50%. Начинает с 7500, 3800, 1900, и тд.
В логах ошибок нет. Почему так происходит?
[2020-11-08 23:50:26][58] Processing: App\Jobs\FixNonUniqueAddresses
[2020-11-08 23:50:40][58] Processed: App\Jobs\FixNonUniqueAddresses
<?php
namespace App\Jobs;
use App\Models\Address;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class FixNonUniqueAddresses implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $timeout = 1000;
public function __construct()
{
//
}
public function handle()
{
Address::where('addressable_type', 'places')->whereNull('type')->chunkById(
50,
function ($addresses) {
$addresses->each(function ($address) {
$newData = transformStreet(
$address->street,
$address->lang
);
$address->update($newData);
});
}
);
}
}