user enqueuer - avatar
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user