more aggressive timeout constraints for loose source queries

This commit is contained in:
albert
2013-03-02 20:30:59 -05:00
parent b9b92b6264
commit b34080d0af
3 changed files with 11 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ class PostsController < ApplicationController
respond_to :html, :xml, :json
rescue_from PostSets::SearchError, :with => :rescue_exception
rescue_from Post::SearchError, :with => :rescue_exception
rescue_from ActiveRecord::StatementInvalid, :with => :rescue_exception
def index
@post_set = PostSets::Post.new(tag_query, params[:page], params[:limit])

View File

@@ -43,7 +43,15 @@ module PostSets
end
@posts ||= begin
temp = ::Post.tag_match(tag_string).paginate(page, :count => ::Post.fast_count(tag_string), :limit => per_page)
timeout = 3000
if tag_string =~ /source:.*\*.*\*$/
timeout = 300
end
temp = ::Post.with_timeout(timeout, Danbooru.config.blank_tag_search_fast_count || 1_000_000) do
::Post.tag_match(tag_string).paginate(page, :count => ::Post.fast_count(tag_string), :limit => per_page)
end
temp.all
temp
end

View File

@@ -152,7 +152,7 @@ class Post < ActiveRecord::Base
module ImageMethods
def has_large?
image_width > Danbooru.config.large_image_width
image_width.present? && image_width > Danbooru.config.large_image_width
end
def has_large