Добрый вечер!
У меня есть проблемный фрагмент кода с импортом Excel файлов с использованием синхронного драйвера очередей.
readonly class BaseNumberFileCreator implements BaseNumberCreatorInterface
{
public function __construct(private BaseNumberData $baseNumberData)
{
}
public function createBaseNumber(): BaseNumber
{
$filePath = FilesService::putFile('/phone_numbers', $this->baseNumberData->file);
$result = DB::transaction(function () use ($filePath) {
$baseNumber = BaseNumberModel::create($this->baseNumberData->except('file', 'numbers', 'headers')->toArray());
$headers = (array)json_decode($this->baseNumberData->headers);
Excel::queueImport(new PhoneNumberImport($baseNumber->id, $headers), $filePath, 'public', \Maatwebsite\Excel\Excel::XLSX)
->allOnQueue(config('app.env') . '-imports')->chain([new NotifyBaseNumberOfCompletedImport($baseNumber)]);
return $baseNumber;
});
if ($result) {
return $result;
}
FilesService::deleteFile($filePath);
throw new Exception('Error accused during file uploading');
}
}
Я пытался задебажить проблемный участок, начал сначала с логирования модели PhoneNumberImport, но это ни к чему не привело, до этого этапа даже не доходит.
Тогда решил проверить работают ли вообще у меня очереди:
root@fb36acde9657:/var/www/html# php artisan queue:work
INFO Processing jobs from the [default] queue.
Сам проект у меня запущен в докере.
По логике данного кода должны импортироваться все номера из Excel файла в базу данных, но это не происходит.
В каком направлении копать?