always do a count search for cases where fast_count returns 0

This commit is contained in:
albert
2013-02-20 13:36:48 -05:00
parent 04d6f25e22
commit c848647053
2 changed files with 23 additions and 12 deletions

View File

@@ -595,9 +595,18 @@ class Post < ActiveRecord::Base
def fast_count(tags = "") def fast_count(tags = "")
tags = tags.to_s.strip tags = tags.to_s.strip
count = get_count_from_cache(tags) count = get_count_from_cache(tags)
if count.nil? if count.nil?
fast_count_search(tags)
end
count.to_i
rescue SearchError
0
end
def fast_count_search(tags)
if tags.blank? && Danbooru.config.blank_tag_search_fast_count if tags.blank? && Danbooru.config.blank_tag_search_fast_count
count = Danbooru.config.blank_tag_search_fast_count count = Danbooru.config.blank_tag_search_fast_count
else else
@@ -606,15 +615,14 @@ class Post < ActiveRecord::Base
end end
end end
if count == 0
count = Post.tag_match(tags).undeleted.count
end
if count > Danbooru.config.posts_per_page * 10 if count > Danbooru.config.posts_per_page * 10
set_count_in_cache(tags, count) set_count_in_cache(tags, count)
end end
end end
count.to_i
rescue SearchError
0
end
end end
module CacheMethods module CacheMethods

View File

@@ -0,0 +1,3 @@
#!/bin/bash
psql -hdbserver -c 'select count(*) from delayed_jobs' -Pt -A danbooru2 > /tmp/delayed_job_count