我正在尝试开发一个API来将来自多个应用程序的警报存储到数据库中。我正在用Laravel开发api。
我编写了一个C程序,它向API发出多个post请求,以查看laravel进程可以处理多少个请求。
我在api.php中有以下路线
Route::post('/alarm', 'Api\v1\AlarmController@store');
在我的控制器中,我使存储函数将在post请求中接收到的报警值存储到数据库中。
function store(Request $request)
{
$content = $request->getContent();
$json_content = json_decode($content);
$id = $this->alarm_model->newAlarm($json_content);
echo '{ "result": '.$id.', "msg":'.$content.' }';
}
然后,我有一个警报模型,它将json值存储在数据库告警表中。
如果我发出1000个请求,它就无法处理所有这些请求。我得到了HttpSendRequest错误: 12002互联网超时
我做错了什么吗?每秒有多少请求允许Laravel框架?
发布于 2016-10-19 11:18:38
据我所知,这是没有限制的,这完全取决于您的环境,如果它是一个小型服务器,我怀疑它是否能够每秒处理1000个请求。
你可以做的是利用Laravel队列
我认为您正在发生的事情是,您的服务器在试图一次完成1000个请求时过于繁忙。这会导致服务器响应“我很忙”的信号。
但是有了队列,您可以限制对服务器的压力,并使其在几分钟内发生?
如何:
php artisan make:job ProcessAlarms
store
方法中使用这个dispatch(new ProcessAlarm($data_you_want_to_pass));
https://stackoverflow.com/questions/40129065
复制相似问题