Laravel API速度(太慢)

时间:2016-10-19 10:40:43

标签: api laravel post httprequest rate-limiting

我正在尝试开发一个API,将来自多个应用程序的警报存储到数据库中。我正在用Laravel开发api。

我已经制作了一个C程序,它向API发出多个帖子请求,以便查看laravel api进程有多少请求。

我在api.php中有以下路线

Route::post('/alarm', 'Api\v1\AlarmController@store');

在我的控制器中,我创建了存储功能,将发布请求中收到的警报值存储到数据库中

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 Internet Timeout

我做错了吗?每秒有多少请求允许Laravel框架?

1 个答案:

答案 0 :(得分:0)

没有限制,据我所知,这一切都取决于你的环境,如果它是一个小型服务器,我怀疑它能够每秒处理1000个请求。

您可以做的是使用Laravel Queues

我认为最终发生的事情是,当您尝试一次完成1000个请求时,您的服务器会变得太忙。这导致服务器响应“我忙”信号。

但是有了队列,你可以限制服务器上的压力并在几分钟内完成它吗?

如何:

  1. 创建作业php artisan make:job ProcessAlarms

  2. 在Job's Handle方法中,您输入了保存警报的逻辑

  3. 然后在您的Controller的store方法中使用此dispatch(new ProcessAlarm($data_you_want_to_pass));