user enqueuer - avatar

This commit is contained in:
Dylan Knutson
2023-04-07 12:19:38 -07:00
parent 3e62f9949c
commit fde45e9704
4 changed files with 29 additions and 22 deletions

View File

@@ -9,12 +9,6 @@ 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 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
@@ -36,18 +30,27 @@ class Domain::Fa::UserEnqueuer
bulk_enqueue_jobs do
rows.each do |user|
types = []
if user.due_for_page_scan?
Domain::Fa::Job::UserPageJob.perform_later({ user: user })
types << "page"
if user.state == "ok"
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
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"
avatar = user.avatar_or_create
if avatar.file.nil? && avatar.state == "ok"
Domain::Fa::Job::UserAvatarJob.perform_later({ user: user })
types << "avatar"
end
types = types.map { |t| t.bold }.join("|")
logger.info "#{types} - #{user.url_name.bold} - #{user.id.to_s.bold}"
end
@@ -91,6 +94,11 @@ class Domain::Fa::UserEnqueuer
finished_at: nil,
performed_at: nil,
).count / 5,
GoodJob::Job.where(
queue_name: "fa_user_avatar",
finished_at: nil,
performed_at: nil,
).count,
].max
end
end

View File

@@ -394,5 +394,4 @@ ActiveRecord::Schema[7.0].define(version: 0) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end

View File

@@ -49,10 +49,10 @@ describe Domain::Fa::PostEnqueuer do
post_fa_ids = posts.map(&:fa_id)
enqueuer.run_once
expect(enqueued_fa_ids.call).to eq(post_fa_ids[0...5])
expect(enqueued_fa_jobs.call).to eq(
[Domain::Fa::Job::ScanPostJob] * 4 +
[Domain::Fa::Job::ScanFileJob] * 1
expect(enqueued_fa_ids.call).to contain_exactly(*post_fa_ids[0...5])
expect(enqueued_fa_jobs.call).to contain_exactly(
*([Domain::Fa::Job::ScanPostJob] * 4 +
[Domain::Fa::Job::ScanFileJob] * 1)
)
SpecUtil.shift_jobs

View File

@@ -21,7 +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)
expect(SpecUtil.enqueued_jobs.length).to eq(20)
SpecUtil.shift_jobs(Domain::Fa::Job::UserFollowsJob)
enqueuer.run_once