限制Rails中每个用户的照片上传

时间:2017-01-04 20:44:42

标签: ruby-on-rails heroku

我的heroku网络服务器出现问题,用户反复点击照片上传按钮并使服务器超载。这是我停止上传的基本代码(如果已经在进行中)。

def create
  cache_key = "photo_uploads_from_#{request.remote_ip}"
  upload_in_progress = Rails.cache.fetch(cache_key)
  if upload_in_progress.nil?
    Rails.cache.fetch(cache_key, expires_in: 31.seconds) do
      true
    end
  else
    return
  end

  photo = Photo.new photo_params.slice(:remote_image_url, :image, :notes)

  if photo.save
    render json: photo, status: :created
  else
    render json: { errors: photo.errors }, status: :unprocessable_entity
  end
  Rails.cache.delete cache_key
end

我使用31秒超时,因为heroku对请求有30秒的限制。我只是想知道如果不按照我的方式返回将会有问题。不确定多个并发帖子请求的运行方式。

0 个答案:

没有答案