From a68db501c271c7aa22320b5eddd5aacb8c2a70fe Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 16 Aug 2019 20:49:35 -0500 Subject: [PATCH] jobs: migrate related tag updates to ActiveJob. --- app/jobs/update_related_tags_job.rb | 7 +++++++ app/models/tag.rb | 2 +- test/unit/tag_test.rb | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 app/jobs/update_related_tags_job.rb diff --git a/app/jobs/update_related_tags_job.rb b/app/jobs/update_related_tags_job.rb new file mode 100644 index 000000000..d538d5945 --- /dev/null +++ b/app/jobs/update_related_tags_job.rb @@ -0,0 +1,7 @@ +class UpdateRelatedTagsJob < ApplicationJob + queue_as :default + + def perform(tag) + tag.update_related + end +end diff --git a/app/models/tag.rb b/app/models/tag.rb index 9ee796dd1..2463b8488 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -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}") diff --git a/test/unit/tag_test.rb b/test/unit/tag_test.rb index 28f8cab21..bf93b2edd 100644 --- a/test/unit/tag_test.rb +++ b/test/unit/tag_test.rb @@ -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