我的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秒的限制。我只是想知道如果不按照我的方式返回将会有问题。不确定多个并发帖子请求的运行方式。