2016-10-19 8 views
0

Я пытаюсь разработать API для хранения сигналов тревоги, поступающих из нескольких приложений в базу данных. Я разрабатываю api с Laravel.Скорость Laravel API (слишком медленно)

Я сделал программу на языке C, которая делает несколько запросов на отправку API, чтобы узнать, сколько запросов может выполнить процесс larvel api.

У меня есть следующий маршрут в api.php

Route::post('/alarm', 'Api\v1\[email protected]'); 

В моем контроллере я сделал функцию магазина, которая хранит значение тревоги, полученное в запросе на пост в базу данных

function store(Request $request) 
    { 

     $content = $request->getContent(); 

     $json_content = json_decode($content); 

     $id = $this->alarm_model->newAlarm($json_content); 

     echo '{ "result": '.$id.', "msg":'.$content.' }'; 

    } 

Тогда У меня есть модель Alarm, в которой хранятся значения json в таблице аварийных сигналов базы данных.

Если я сделаю 1000 запросов, он не сможет обработать их все. Я получаю ошибку HttpSendRequest: 12002 Тайм-аут Интернета

Я что-то не так? Сколько запросов в секунду позволяет использовать Laravel?

ответ

0

Нет ограничений, Насколько я знаю, все зависит от вашей среды, если это небольшой сервер, я сомневаюсь, что он сможет обрабатывать 1000 запросов в секунду.

Что вы могли бы сделать вместо этого использовать Laravel Queues

Что я думаю, что происходит на вашем конце, что ваш сервер получает слишком занят, пытаясь закончить 1000 запросов одновременно. Это приводит к тому, что сервер отвечает на сигнал «Я занят».

Но с очередью вы можете ограничить давление на сервер и сделать это в течение нескольких минут?

Как:

  1. Создать работу php artisan make:job ProcessAlarms

  2. В методе обработки задания в вы положили логику, чтобы сохранить Alarm

  3. Затем в использовании store метода контроллера это dispatch(new ProcessAlarm($data_you_want_to_pass));

+0

Дело в том, что если я сделаю то же самое с простым php (отправьте запрос на простой php, который хранит данные в базе данных), сервер сможет обработать запрос 1000. Так что я не знаю, что я делаю что-то не так в laravel, или если laravel заставляет сервер занят. – aritz

+0

Хорошо Laravel проходит довольно много в цикле запросов, поэтому есть большая разница при прохождении через 1 php-файл с «простыми» вызовами SQL, а затем через весь жизненный цикл приложения. – WebKenth

+0

1000 запросов в CPU i5-2430 2.4GHz и 8Gb ОЗУ под Win7 слишком много? – aritz