У меня есть приложение, которое с помощью maatwebsite/laravel-excel
lib импортирует файл Excel с данными о сотрудниках. На каждой импортированной строке приложение создает нового пользователя. После этого он выбирает всех созданных пользователей и отправляет им электронную почту с временными учетными данными.
Контроллер. php
public function import(Request $request) {
ini_set('max_execution_time', '0');
$import = new EmpImport();
try {
$import->import($request->file('file'));
}catch (\Maatwebsite\Excel\Validators\ValidationException $e){
return back()->withErrors('Error: '.$e->getMessage());
}
$users = User::whereDate('created_at',Carbon::today())->whereNotNull('temp_pass')->get();
$when = Carbon::now();
if (count($users) > 0){
foreach ($users as $user){
$emp = $user->emp;
$error = null;
if (!$emp->contact->exists() || $emp->contact->email == null)
continue;
try{
$error = Mail::to($emp->contact->email)->later($when->addSeconds(5), new AccountCreated($emp,$user->temp_password));
}catch (\Exception $e){
$error = $exception);
}
if ($error === null){
$user->temp_password = null;
$user->save();
}
}
}
ini_set('max_execution_time', '30');
return back();
}
Работает нормально со 100 строками но когда файл Excel стал 1k + Nginx начал давать мне 504 Gateway Timeout error
, поэтому я изменил его конфигурации на:
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
Но при следующей попытке он показал 502 bad gateway
: (....