jobs: migrate related tag updates to ActiveJob.

This commit is contained in:
evazion
2019-08-16 20:49:35 -05:00
parent 24eb1b155f
commit a68db501c2
3 changed files with 19 additions and 1 deletions

View File

@@ -0,0 +1,7 @@
class UpdateRelatedTagsJob < ApplicationJob
queue_as :default
def perform(tag)
tag.update_related
end
end

View File

@@ -872,7 +872,7 @@ class Tag < ApplicationRecord
if Cache.get("urt:#{key}").nil? && should_update_related?
if post_count < COSINE_SIMILARITY_RELATED_TAG_THRESHOLD
delay(:queue => "default").update_related
UpdateRelatedTagsJob.perform_later(self)
else
sqs = SqsService.new(Danbooru.config.aws_sqs_reltagcalc_url)
sqs.send_message("calculate #{name}")

View File

@@ -283,4 +283,15 @@ class TagTest < ActiveSupport::TestCase
assert_equal(1, tag.reload.post_count)
end
end
context "The #related_tag_array method" do
should "update the related tags" do
create(:post, tag_string: "bkub")
tag = Tag.find_by_name("bkub")
assert_nil(tag.related_tags)
perform_enqueued_jobs { tag.related_tag_array }
assert_equal([["bkub", "1"]], tag.reload.related_tag_array)
end
end
end