向Grape API提出的Rails阻止其他请求

温格

对于我的rails应用程序,我使用gem Grape设置了API。我添加了一个测试发布方法,该代码休眠10秒并返回{'status'=>'success'}。一切正常,除了API调用似乎阻止了所有其他发送到服务器的请求。在此睡眠10秒api完成之前,不会执行任何其他请求。来自前端接口的任何GET请求都会被延迟。如果我模拟了两个api调用,则第二个调用需要20秒(等待第一个完成需要10秒)才能完成。请对此提供建议。

api.rb文件如下所示:

module ProjectName
  module MyErrorFormatter
    def self.call message, backtrace, options, env
      { "status" => "Fail", "error_message" => message }.to_json
    end
  end

  class API < Grape::API

    format :json
    default_format :json
    prefix 'api'
    cascade false
    error_formatter :json, MyErrorFormatter
    helpers APIHelpers

    before do 
      authenticate!
    end

    post do
      if params[:action].present?
        p_url = format_url(params)
        redirect "/api/#{params[:action]}?key=#{params[:key]}#{p_url}"
      end
    end

    post 'test' do
      sleep(10)
      {'status'=>'success'}
    end
  end
end

我正在使用Rails 4.2.0

khpatel4991

这意味着您的请求不会同时并行处理。在Rails 4中启用了线程安全,这可能与此有关。Threadsafe可能正在锁定您的操作,因此您的下一个请求无法获得访问权限。但是,您可以明确告诉服务器处理并发请求。在所有配置/环境文件中添加此行将有所帮助。

config.allow_concurrency = true

另外,您将需要一个可以处理并发的服务器,例如puma。

有关此的更多信息,请参见此处此处

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何向其他人提出重做的拉取请求?

来自分类Dev

Magento USPS未正确向国际国家提出API请求

来自分类Dev

向被 CORS 政策阻止的 API 发布请求

来自分类Dev

向nats组提出请求

来自分类Dev

是否可以过滤对Grape API请求的参数?

来自分类Dev

在Grape API中检查请求主体

来自分类Dev

在Grape API中检查请求主体

来自分类Dev

Rails Grape API版本控制模块结构

来自分类Dev

Rails Grape show 404页

来自分类Dev

rails:使用sw而不是swagger文档中的https而不是https的grape-swagger-rails API请求

来自分类Dev

向eBay提出简单的授权请求

来自分类Dev

如何从在其他端口上运行的本地AngularJS应用程序向本地Rails应用程序发出请求?

来自分类Dev

除了向API发出请求之外,是否有其他方法可以检查API是否可消耗?

来自分类Dev

如何解决向保险柜写入错误:提出API请求时出错

来自分类Dev

向Giphy API提出请求时,为什么会收到HTTP错误403?

来自分类Dev

通过点击链接向其他网站发送获取请求?

来自分类Dev

请求中不需要ID的Rails Grape API“ ID无效”

来自分类Dev

Wisper和Grape从POST请求返回结果

来自分类Dev

rails-grape api错误调用版本为api的类

来自分类Dev

使用请求模块向NASA网站提出请求

来自分类Dev

在Grape and Rails上按API版本更改视图模板

来自分类Dev

在Grape and Rails上按API版本更改视图模板

来自分类Dev

Grape API(swagger doc)-'desc'的全局配置

来自分类Dev

使用Nginx / Passenger部署Grape API

来自分类Dev

如何传递哈希到Grape API方法?

来自分类Dev

grape api会忽略PUT / POST参数

来自分类Dev

将ApplicationController继承到Grape-API

来自分类Dev

Grape API-如何发布嵌套资源?

来自分类Dev

Grape的API密钥身份验证

Related 相关文章

热门标签

归档