only enqueue next most important scan
This commit is contained in:
@@ -210,7 +210,7 @@ class Domain::Fa::Job::Base < Scraper::JobBase
|
||||
if creator = post.creator
|
||||
creator.state_ok!
|
||||
creator.save!
|
||||
enqueue_user_scan(creator)
|
||||
enqueue_user_scan(creator, at_most_one_scan: true)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -233,8 +233,8 @@ class Domain::Fa::Job::Base < Scraper::JobBase
|
||||
ListingPageScanStats.new(new_posts:, all_posts:)
|
||||
end
|
||||
|
||||
sig { params(user: Domain::User::FaUser).void }
|
||||
def enqueue_user_scan(user)
|
||||
sig { params(user: Domain::User::FaUser, at_most_one_scan: T::Boolean).void }
|
||||
def enqueue_user_scan(user, at_most_one_scan:)
|
||||
logger.tagged(make_arg_tag(user)) do
|
||||
args =
|
||||
if user.persisted?
|
||||
@@ -260,18 +260,19 @@ class Domain::Fa::Job::Base < Scraper::JobBase
|
||||
end
|
||||
|
||||
# don't enqueue any other jobs if the user page hasn't been scanned yet
|
||||
return unless user.scanned_page_at?
|
||||
return if at_most_one_scan && user.page_scan.due?
|
||||
|
||||
if user.gallery_scan.due? &&
|
||||
defer_job(Domain::Fa::Job::UserGalleryJob, args)
|
||||
if user.favs_scan.due? && defer_job(Domain::Fa::Job::FavsJob, args)
|
||||
logger.info(
|
||||
format_tags(
|
||||
"enqueue user gallery job",
|
||||
make_tag("last gallery scan", user.gallery_scan.ago_in_words),
|
||||
"enqueue user favs job",
|
||||
make_tag("last favs scan", user.favs_scan.ago_in_words),
|
||||
),
|
||||
)
|
||||
end
|
||||
|
||||
return if at_most_one_scan && user.favs_scan.due?
|
||||
|
||||
if user.follows_scan.due? &&
|
||||
defer_job(Domain::Fa::Job::UserFollowsJob, args)
|
||||
logger.info(
|
||||
@@ -282,11 +283,14 @@ class Domain::Fa::Job::Base < Scraper::JobBase
|
||||
)
|
||||
end
|
||||
|
||||
if user.favs_scan.due? && defer_job(Domain::Fa::Job::FavsJob, args)
|
||||
return if at_most_one_scan && user.follows_scan.due?
|
||||
|
||||
if user.gallery_scan.due? &&
|
||||
defer_job(Domain::Fa::Job::UserGalleryJob, args)
|
||||
logger.info(
|
||||
format_tags(
|
||||
"enqueue user favs job",
|
||||
make_tag("last favs scan", user.favs_scan.ago_in_words),
|
||||
"enqueue user gallery job",
|
||||
make_tag("last gallery scan", user.gallery_scan.ago_in_words),
|
||||
),
|
||||
)
|
||||
end
|
||||
@@ -483,7 +487,7 @@ class Domain::Fa::Job::Base < Scraper::JobBase
|
||||
Domain::User::FaUser.create!(url_name:) do |user|
|
||||
user.name ||= url_name
|
||||
end
|
||||
enqueue_user_scan(user)
|
||||
enqueue_user_scan(user, at_most_one_scan: true)
|
||||
when FoundLink::FaPost
|
||||
fa_id = link.fa_id
|
||||
post =
|
||||
|
||||
@@ -28,7 +28,7 @@ class Domain::Fa::Job::ScanPostJob < Domain::Fa::Job::Base
|
||||
|
||||
if creator = post.creator
|
||||
logger.push_tags(make_arg_tag(creator))
|
||||
enqueue_user_scan(creator)
|
||||
enqueue_user_scan(creator, at_most_one_scan: true)
|
||||
end
|
||||
|
||||
if first_log_entry&.status_code == 200
|
||||
|
||||
@@ -29,7 +29,7 @@ class Domain::Fa::Job::UserPageJob < Domain::Fa::Job::Base
|
||||
check_skip_followed_by_users_scan(user, user_page)
|
||||
end
|
||||
|
||||
enqueue_user_scan(user)
|
||||
enqueue_user_scan(user, at_most_one_scan: false)
|
||||
logger.info "completed page scan"
|
||||
ensure
|
||||
user.save! if user
|
||||
|
||||
Reference in New Issue
Block a user