ошибка тайм-аута шлюза при выполнении задания cron - PullRequest
0 голосов
/ 19 сентября 2018

Может ли кто-нибудь предложить какое-либо решение для ошибки timeout 504 gateway timeout при запуске задания cron при совместном использовании.Я пробовал функцию sleep , но она не работала, у меня есть следующая функция для задания cron -

public function checkOrderStatus(){
        $orders = Order::select('id')
                    ->whereNotIn('status', ['COMPLETED', 'CANCELLED', 'PARTIAL', 'REFUNDED'])
                    ->where('api_order_id', '!=', null)
                    ->orderBy('id', 'desc')
                    ->pluck('id')
                    ->toArray();

        $collection = collect($orders);

        $chunks = $collection->chunk(20);

        $request = new \Illuminate\Http\Request();
        foreach($chunks as $ids){
            foreach($ids as $id){
                $request->replace(['id' => $id]);
                $rep = $this->getOrderStatusFromAPI($request);
            }
            sleep(10);
        }
    }

getOrderStatusFromAPI () вызывает сторонние API дляполучить некоторые записи. checkOrderStatus () функция, в настоящее время извлекающая около 300 записей в каждом вызове cron.Пожалуйста, предложите любое решение, кроме обновления сервера.Большое спасибо!!

1 Ответ

0 голосов
/ 19 сентября 2018

Есть несколько решений вашей проблемы.Если вы используете NGINX с FastCGI, попробуйте:

Изменения в php.ini

Попробуйте увеличить значение max_execution_time в файле php.ini (путь CentOS - / etc / php.ini):

max_execution_time = 150

Изменения в PHP-FPM

Попробуйте повысить значение параметра request_terminate_timeout в файле php.ini (путь CentOS - / etc / php-fpm.d):

request_terminate_timeout = 150

Изменения в конфигурации Nginx

Наконец, добавьте переменную fastcgi_read_timeout в нашу конфигурацию виртуального хоста Nginx:

location ~* \.php$ {
    include         fastcgi_params;
    fastcgi_index   index.php;
    fastcgi_read_timeout 150;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
}

ОбновитьPHP-FPM и Nginx:

service php–fpm restart
service nginx restart
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...