user enqueuer for more job types

This commit is contained in:
Dylan Knutson
2023-04-03 22:28:42 +09:00
parent e3c778316d
commit 0e8d3d633f
2 changed files with 32 additions and 3 deletions

View File

@@ -9,7 +9,12 @@ class Domain::Fa::UserEnqueuer
raise if @high_water_mark <= @low_water_mark
@user_iterator = Enumerator.new do |e|
Domain::Fa::User.
where(scanned_follows_at: nil, state: "ok").
where([
"(scanned_follows_at is null)",
"(scanned_gallery_at is null)",
"(scanned_page_at is null)",
].join(" OR ")).
where(state: "ok").
where("id >= ?", start_at).
find_each do |user|
e << user
@@ -30,8 +35,21 @@ class Domain::Fa::UserEnqueuer
measure("enqueue jobs") do
bulk_enqueue_jobs do
rows.each do |user|
Domain::Fa::Job::UserFollowsJob.perform_later({ user: user })
logger.info "enqueue #{user.url_name.bold} (#{user.id.to_s.bold})"
types = []
if user.due_for_page_scan?
Domain::Fa::Job::UserPageJob.perform_later({ user: user })
types << "page"
end
if user.due_for_gallery_scan?
Domain::Fa::Job::UserGalleryJob.perform_later({ user: user })
types << "gallery"
end
if user.due_for_follows_scan?
Domain::Fa::Job::UserFollowsJob.perform_later({ user: user })
types << "follows"
end
types = types.map { |t| t.bold }.join("|")
logger.info "#{types} - #{user.url_name.bold} - #{user.id.to_s.bold}"
end
end
end
@@ -63,6 +81,16 @@ class Domain::Fa::UserEnqueuer
finished_at: nil,
performed_at: nil,
).count,
GoodJob::Job.where(
queue_name: "fa_user_gallery",
finished_at: nil,
performed_at: nil,
).count,
GoodJob::Job.where(
queue_name: "fa_post",
finished_at: nil,
performed_at: nil,
).count / 5,
].max
end
end

View File

@@ -21,6 +21,7 @@ describe Domain::Fa::UserEnqueuer do
enqueuer.run_once
expect(get_enqueued_users.call.length).to eq(5)
expect(get_enqueued_users.call).to eq(users[0...5])
expect(SpecUtil.enqueued_jobs.length).to eq(15)
SpecUtil.shift_jobs(Domain::Fa::Job::UserFollowsJob)
enqueuer.run_once