make tag subscription updates asynchronous

This commit is contained in:
r888888888
2014-02-21 16:44:31 -08:00
parent fa72a16741
commit 209bdff7b6
2 changed files with 13 additions and 10 deletions

View File

@@ -151,18 +151,20 @@ class TagSubscription < ActiveRecord::Base
arel.order("id DESC").limit(limit)
end
def self.process(id)
tag_subscription = TagSubscription.find(id)
CurrentUser.scoped(tag_subscription.creator, "127.0.0.1") do
tag_subscription.process
tag_subscription.save
end
rescue Exception => x
raise if Rails.env != "production"
end
def self.process_all
find_each do |tag_subscription|
CurrentUser.scoped(tag_subscription.creator, "127.0.0.1") do
if $job_task_daemon_active != false && tag_subscription.creator.is_gold? && tag_subscription.is_active?
begin
tag_subscription.process
tag_subscription.save
sleep 0
rescue Exception => x
raise if Rails.env != "production"
end
end
if tag_subscription.creator.is_gold? && tag_subscription.is_active?
TagSubscription.delay(:queue => "default").process(tag_subscription.id)
end
end
end

View File

@@ -5,6 +5,7 @@ class TagSubscriptionTest < ActiveSupport::TestCase
user = FactoryGirl.create(:user)
CurrentUser.user = user
CurrentUser.ip_addr = "127.0.0.1"
Delayed::Worker.delay_jobs = false
MEMCACHE.flush_all
end